6.python之input()函数

上节课讲了通过条件判断语句if是对成绩score进行条件判断。现在有个问题,案例中score的值是在代码中赋予的,换句话说就是写死的,只能在代码中修改。如果想要每次程序运行时手动输入score值,要如何做到呢?

这就需要用到本节课要讲的input()函数。它的作用就是让我们能和计算机沟通,把我们想要的内容传达给计算机。有了input()函数,就不再是计算机单纯的通过print()函数向我们输出,而是我们可以向它输入。

1、input()函数的使用

在python中输入代码【input('请输入你的成绩:')】,运行后系统展示【请输入你的成绩:】,输入成绩85,然后按回车键,看看系统的反应。

6.python之input()函数

 

系统既没有报错,也没有其他的执行结果。这是因为代码是从上往下一行行执行的,input()函数执行后,下面没有其他命令,所以不会产生结果。

但是输入的成绩85并没有丢失,而是被储存在程序中。然而,我如何能将存储的成绩调出来,并让其在程序中起作用呢?这就需要用到下一个知识点。

2、input()函数结果的赋值

6.python之input()函数

 

用前面讲过的变量赋值语句进行赋值,这里放进score盒子中的值不是input()函数中的文字描述,而是我们通过input()函数输入的值。这个值会储存在变量score中,然后打印出来。

6.python之input()函数

 

将input()函数赋值和条件判断语句结合起来,试着阅读下面的代码,思考代码执行的顺序。

6.python之input()函数

 

运行这段代码,输入成绩后按回车键,发现程序报错,错误类型是【TypeError: '>=' not supported between instances of 'str' and 'int'】。

为什么会报错呢?难道input()函数赋值语句不能用于条件判断?这种情况要如何处理?

其实我们在编程中,经常会遇到这种运行报错的情况。不管是什么样的课程,都无法保证把所有可能遇到的错误逐一呈现给你并讲清楚错误原因,因为错误类型实在太多了。因此需要我们具备独立判断错误并修正的能力。

如果你英文还可以,看到【TypeError: '>=' not supported between instances of 'str' and 'int'】,大致能明白要表达的意思是【不支持字符串和整数间的关系】。如果你还有点儿编程经验,那么就会明白问题出在哪里了。

但是现在我们还是初学者,要怎么解决这个问题呢?有一个很简单的方法,就是复制错误类型到百度中,看看里面是否有答案。

6.python之input()函数

 

百度后发现答案非常多,选择第一个点进去,发现答案中不但说明了原因,还说明了解决方法。

6.python之input()函数

 

按照上面的解决方法将【score = input('请输入你的成绩:')】改为【score = int(input('请输入你的成绩:'))】,再次运行发现程序能够正常运行。

这告诉我们解决程序报错没有想象中的那么复杂,通过互联网可以很容易的定位并解决一些问题。如果你在程序运营的过程中遇到报错,尝试阅读错误类型并自行百度解决。

在input()函数外面套上int()可以解决问题是第4课讲到的知识点,通过int()强制将input()函数返回的数据类型转换成整数,保证和if条件中的整数一致。

那么为什么需要将input()函数的数据转换成整数呢?input()函数返回的数据类型是什么呢?

3、input()函数的数据类型

看了上面的解决方案,我们产生了疑问,在给score赋值时,输出的数字明明是整数,为什么在错误类型中会出现字符串(str)呢?input()函数返回的数据类型是什么呢?

运行下面这段代码,查看结果。其中type()函数的作用是查询括号中的值的数据类型。

6.python之input()函数

 

查看结果发现,score变量中的值的数据类型是字符串(str),这就可以解释为什么之前程序会报错。赋予变量的值是字符串,却用整数做判断,不报错才怪!

这里我们可以得出一个结论:input()函数的数据类型必为str,不管你在程序中输入的是整数还是字符串,其通过input()函数赋予变量的值必为字符串。

所以,在使用input()函数时,如果条件判断语句中的条件为整数,需要通过int()将input()函数返回的数据类型转换成整数。

这节课到这里就结束了,前面的几节课讲了python函数的输入、输出、条件判断、数据类型等,你是不是都已经掌握了呢?下节课会讲讲关于python的学习方法,以及在python学习中会遇到哪些困难。