首发于Python
Python之input()函数

Python之input()函数

input()函数包含四个方面:input()函数的使用/结果的赋值/数据类型/结果的强制转换。是实现人机互动沟通的关键,需要在终端出输入信息。我们可以把input()函数当作一扇链接现实世界与代码世界的门,图解如下:

先看一个例子: 

1、将代码串input(请在以下四个选项【小米;大鼻;钢牙;小老鼠】中,输入你猜到得小YO给新宠小老鼠取的名字: 写在代码框中;
2、点击运行后,在右侧终端处输入自己的选择;
 3、输入答案“小米”后按回车键。

通过这个例子YO妈来说说input()函数的使用和input()函数结果的赋值。

1、input()函数的使用

使用input()函数搜集信息,如上例需要你输入针对括号内'请在以下四个选项【小米;大鼻;钢牙;小老鼠】中,输入你猜到得小YO给新宠小老鼠取的名字: '的答案。所以,当你在函数的括号内写出问题时,input()函数会将此问题原样显示在屏幕上,并在终端区域等待你针对此问题的回答。可是,我们为什么要在终端处输入回答呢?不输入行不行?事实上,我们可以把input()函数当作一扇链接现实世界与代码世界的门。当问题从代码世界传递给我们,可我们却没有回答时,这扇等待输入的input()大门,就会一直处于敞开状态,一直等着你往里送回答。而当我们输入信息后,这扇input()大门便会关上,继续执行下面的命令。简单来说,我们思维的第一步,就是使用input()函数搜集信息:

在python里,『#』常用作单行注释符号,用于解释单行代码,#号后边的任何数据在代码运行的阶段不会被输出。

当我想将搜集到的数据和【'?要问问小YO'】拼接起来,并打印出结果时,问题来了。虽然我用input()函数搜集到了一个信息,可我如何从程序海洋中调出这个信息,进行数据拼接呢?这就涉及到了input()函数的第二个知识点——函数结果的赋值。

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

还记得YO妈写在前面的变量赋值吗?首先,我们可以对变量进行赋值,这样当我们想提取数据时,只要直接打印变量名,就能唤醒程序对数据的记忆,这个赋值逻辑,在input()函数中也是行得通的。我们也可以通过赋值,达到随时提取输入结果的目的。但是在逻辑层面,我们需要拐一个弯。以下面这串代码为例:

赋值符号=不是左边等于右边的意思。仅仅表示赋值动作:把右边的内容放到了左边的盒子中。

看上去像是给input()函数赋值,实际上是将input()函数的执行结果(收集的信息)赋值给变量name。通俗来讲,我们放进name这个盒子里的东西,不是input()函数中提的问题,而是通过input()函数收集到的别人的答案。不管你在终端输入的内容是什么,不管你的回答改变多少次,只要是对input()函数所提问题的回答,都会被存储在变量中。等待你打印变量时,将回答提取出来,展示在显示屏上。而这些展示在终端的信息/回答/数据,在代码世界,我们可以称其为输入值:我们输入给函数的内容。回到小YO新宠小老鼠的名字的案例中:

YO妈输入的是“小米”就是输入值

在终端处输入的信息:小米或大鼻或钢牙或小老鼠(每个人输入的内容不同),就是输入值。

为了能随时且方便地提取输入值,我们需要把input()函数的结果赋给变量name。

铺好搜集信息的路,并对获取的信息进行了赋值,此时就可以进行最后一步,打印最终结果。

理解代码时,脑中的思维顺序是先搜集信息再把input()函数的结果赋给变量。为了书写规范及防止漏掉信息,我们要按照代码书写格式,优先对input()函数的结果进行赋值。这就是YO妈提到的重点:函数用好,赋值第一,input()函数的结果必须赋值。图解如下:

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

我们先从计算机语言的逻辑,按行拆解一下这段代码组:

先来看看第一行代码中的赋值语句:

利用input()函数接收数据,并将数据赋值给变量choice。

这行代码的每个部分代表着什么:

赋值符号=不是左边等于右边的意思。仅仅表示赋值动作:把右边的内容放到了左边的盒子中。

对于input()函数来说,不管我们输入的回答是什么,不管输入的是整数1234,还是字符串,input()函数的输入值(搜集到的回答),永远会被【强制性】地转换为【字符串】类型。(这是Python3固定规则)由于我们用赋值运算符【=】把input()函数的字符串结果,赋给了变量choice,所以这个变量也一定是字符串类型。

赋值符号=不是左边等于右边的意思。仅仅表示赋值动作:把右边的内容放到了左边的盒子中。

确定了变量choice的数据类型是字符串。下面,我们再来看后面的代码。

比较运算符==代表左右两边相等的符号

我们先来看第一块代码组的if条件语句【if choice==1】并进行拆解:

比较运算符==代表左右两边相等的符号

你是不是发现了什么问题?YO妈在拆解input()函数时,提到的变量choice的数据类型,在第一次变量赋值时,input()函数的输入值是字符串,'1'也是字符串;但是到了if条件判断时,if的条件变成了【choice == 1】 1没有了引号是个整数类型。因为我们输入的信息永远是字符串,choice是一个字符串类型,而1是一个整数类型,它们当然无法相等,条件【choice == 1】无法成立,只能执行else下面的操作:打印『YO妈看完了家里所有的书』。

我们需要一个更为省力的简便方法,将所有输入值的数据类型,一次性全部变为整数。那就是本文第四点:input()函数结果的强制转换。

4、input()函数结果的强制转换

也许你会问:刚刚提到input()函数搜集到的信息是固定为字符串,还能变整数?没错,input()函数的输入值在某些情况下,是可以变为整数。还记得字符串转变为整数要怎么做吗?int()可以将字符串强制性地转换为整数。有了int()函数,我们就可以从input()函数的源头,将输入的内容转换为整数。

这串代码看起来像是把input()函数整个强制转换了。可实际上,我们是将input()函数取得的结果,进行强制转换,并将强制转换的结果赋值存在名为choice的变量盒里。这样,就算if条件是整数,程序也可以准确运行。那么,我们什么时候会用到,input()函数结果的强制转换呢?很简单,当你想要的答案是数字时,比如年龄、时间、工资等,比如以下一串代码:

int()将字符串input()函数强制性地转换为整数了
YO妈在终端输入11111大于10000,回车得出:打印if条件下的结果
YO妈在终端输入1111小于10000,回车得出:打印else条件下的结果

对应前面是不是又发现了什么问题?这里money的数据类型是整数,所以输入11111或者1111时,if或者else的条件成立,就能执行打印对应的操作了。可以明白了么?YO妈再来归纳一下input()函数数据类型强制转换的知识点:

以上,input()函数的所有知识点YO妈就介绍完了。

YO妈已经写了四篇关于python的文章,现在总结下这四篇文章的重点。

YO妈前四篇文章重点的综合简下:

第一篇,print()函数。print()函数。别看这个函数看起来简单,但是深挖下去,这个最简单的打印函数也内有乾坤,它包含着程序世界最基础的运算逻辑。
第二篇,数据类型。如果想要达成和计算机互动沟通的目的,还需要掌握计算机的沟通语言。只有当计算机明白我们说的是什么时,它才能给予我们正确的反馈
第三篇,条件判断。如果想要达成和计算机互动沟通的目的,还需要掌握计算机的沟通语言。只有当计算机明白我们说的是什么时,它才能给予我们正确的反馈。
第四篇,input()函数。拥有了语言和逻辑,我们就可以和计算机进行交互式沟通了。

希望以上信息可以帮助到你,感兴趣的话可以点赞加关注,会持续更新的。

编辑于 2020-02-29 16:03