这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战
input()
函数的数据类型
现在,我们再来分析一下代码的报错信息,TypeError: can't multiply sequence by non-int of type 'float',翻译结果为类型错误:无法将序列与“float”类型的非int相乘,简单点说就是money*1.2乘法运算两侧不是数字,那么那一侧不是数字呢?很显然左侧不是,那左侧的money是什么类型呢?
答案是【字符串】类型
对于input()函数来说,不管我们输入的回答是什么,不管你输入的是整数1234,还是字符串『什么是快乐星球』,input()函数的输入值(搜集到的回答),永远会被【强制性】地转换为【字符串】类型。(Python3固定规则)
不信?用我们第一关学过的type()函数检验一下?
choice = input('请输入1或2:')
print(type(choice))
是不是呀,我们输入的整数【1】或【2】就会被强制地转换为字符串的【'1'】或【'2'】。
所以,不管我们在终端区域输入什么,input()函数的输入值一定是【字符串】。
就这样,由于我们用赋值运算符【=】把input()函数的字符串结果,赋给了变量money,所以这个变量也一定是字符串类型。
现在,我们确定了变量money的数据类型是字符串。下面,我们就应该解决一下这个问题,怎么解决呢?
为了让用户输入的数据可以参与运算,我们应该将数据转换为整数类型,这时候我们会用到今天的第四个知识点。
input()
函数结果的强制转换
可是刚不是告诉我,input()函数搜集到的信息固定是字符串嘛?还能变整数呢?
没错,input()
函数的输入值在某些情况下,是可以变为整数的。
有了int()函数,我们就可以从input()函数的源头,将输入的内容转换为整数。
money=int(input('请在以下选项中【100;200;500;1000】中,输入您要充值的金额:'))
# 将输入值强制转换为整数,并赋值给变量money
但是,这串代码看起来像是把input()函数整个强制转换了。
可实际上,我们是将input()函数取得的结果,进行强制转换,并将强制转换的结果赋值存在名为money的变量盒里。
这样,money就可以参与乘法运算了。
下面,请你接下我的接力棒。补齐下面的代码:用户输入金额,打印结果是金额*1.2。
money=int(input('请在以下选项中【100;200;500;1000】中,输入您要充值的金额:'))
# 将输入值强制转换为整数,并赋值给变量money
那么,除了上述计算的场景,我们什么时候还会用到,input()函数结果的强制转换呢?
思路很简单,当你想要的答案是数字时,比如年龄:
age = int(input('请输入您的年龄'))
#将输入的岁数(字符串),强制转换为整数
if age > 18:
#当年龄(整数)大于18(整数)时
print('安全驾驶哦~')
#打印else条件下的结果
else:
#当年龄(整数)小于18(整数)时
print('先别上路啦,试试共享单车~')
#打印else条件下的结果
再比如需要输入的信息是时间,或者工资等数字时:
money = int(input('你一个月工资多少钱?'))
#将输入的工资数(字符串),强制转换为整数
if money >= 10000:
#当工资数(整数)大于等于10000(整数)时
print('土豪我们做朋友吧!')
#打印if条件下的结果
else:
#当工资数(整数)小于10000(整数)时
print('我负责赚钱养家,你负责貌美如花~')
#打印else条件下
下面,将上方月工资的代码,添加另一条件:【当工资大于5000,小于10000时】。打印结果:【我们都是搬砖族。。。】,并将添加条件后的整段代码写在下方区域。【要点提示:三个条件并存时,请使用if…elif…else…语句】
money = int(input('你一个月工资多少钱?'))
#将输入的工资数(字符串),强制转换为整数
if money >= 10000:
#当工资数(整数)大于等于10000(整数)时
print('土豪我们做朋友吧!')
#打印if条件下的结果
elif 5000 < money < 10000:
#当工资数(整数)大于5000(整数)小于10000(整数)时
print('我们都是搬砖族。。。')
#打印elif条件下的结果
else:
#当工资数(整数)小于等于5000(整数)时
print('我负责赚钱养家,你负责貌美如花~')
#打印else条件下的结果
最后,我们再来归纳一下input()函数数据类型强制转换的知识点:
那么,本关卡的重点,input()函数的所有知识点我们就介绍完了。最后,我们再来整理一下input()函数的重点内容。