Python的从0到1(第十九天)-Python的input()函数(完结)

226 阅读4分钟

这是我参与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()函数的重点内容。

input()函数知识点总结