python ---input()函数、前几篇知识点总结

input()函数

今天咱们学习python的代码逻辑,利用正确的【数据】和合理的【逻辑】构造命令,最后还需【回应】计算机,【输入】自己的信息。

而这个传递信息的【回应】动作,就是我们今天的重点——input()函数

运用input()函数,开启与计算机实现“双向沟通”的新篇章。

举个例子:

  • import time
  • print(‘亲爱的同学:’)
  • time.sleep(1)
  • print(‘我们愉快地通知您,您已获准在霍格沃茨魔法学校就读。’)
  • time.sleep(2)
  • print(‘随信附上所需书籍及装备一览。’)
  • time.sleep(1)
  • print(‘学期定于九月一日开始。’)
  • time.sleep(1)
  • print(‘鉴于您对魔法世界的不熟悉,’)
  • time.sleep(1)
  • print(‘我们将指派魔咒学老师——吴枫教授带您购买学习用品。’)
  • time.sleep(2)
  • print(‘我们将于七月三十一日前静候您的猫头鹰带来的回信。’)
  • time.sleep(2)
  • print(‘校长(女)米勒娃·麦格谨上’)
  • time.sleep(1)
  • print(‘那么,您的选择是什么? 1 接受,还是 2 放弃呢?’)
  • time.sleep(2)
  • choice=input(‘请输入您选择的数字:’)
  • if choice ==‘1’:
  • print('霍格沃茨欢迎您的到来。')
    
  • else:
  • print('您可是被梅林选中的孩子,我们不接受这个选项。')
    

python:
亲爱的同学:
我们愉快地通知您,您已获准在霍格沃茨魔法学校就读。
随信附上所需书籍及装备一览。
学期定于九月一日开始。
鉴于您对魔法世界的不熟悉,
我们将指派魔咒学老师——吴枫教授带您购买学习用品。
我们将于七月三十一日前静候您的猫头鹰带来的回信。
校长(女)米勒娃·麦格谨上
那么,您的选择是什么? 1 接受,还是 2 放弃呢?
请输入您选择的数字:1
霍格沃茨欢迎您的到来。

以上就是你利用input()函数,与计算机进行的第一次互动式沟通。

想实现真正的人机互动沟通的关键,就是:有来有往。

在这里插入图片描述
那么,input()函数的具体用法、背后的逻辑究竟是什么呢?咱们从以下四个角度了解以下input()函数

在这里插入图片描述
首先咱们先通过一段代码,来看一看input()函数是如何使用的:

  • input(‘请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:’)

input()函数是输入函数。就上面例子来讲,它需要你输入针对括号内’请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:'的答案。

所以,input()函数是输入函数,当你在函数的括号内写出问题时,input()函数会将此问题原样显示在屏幕上,并在终端区域等待你针对此问题的回答。

input()函数是用来收集信息的,并且一定要在终端处输入数据。

input()函数的使用

在这里插入图片描述
前面的例子中咱们也说到了,input()函数有来有往,有问有答,需要在终端处输入信息。

那么,如果我想要从程序海洋中找到刚刚输入的回答,利用它产生一个结果,比如表达学院对我的欢迎要怎么办?

比如像这样:

  • 请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字: 拉文克劳
  • #提出的问题
  • 拉文克劳学院欢迎你,小萌新!
  • #显示的结果

那么要实现以上咱们怎么办呢?

首先咱们先梳理一下思维逻辑:
首先,学院为了做好准备欢迎你,它们得知道你选择得学院,所以首先得搜集你心仪学院的信息。

思维第一步:就是使用input()函数搜集信息:

  • input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字: ')
  • #运用input函数搜集信息

然而,当我想将搜集到的数据和【‘学院欢迎你,小萌新!’】拼接起来,并打印出结果时,问题来了。虽然我用input()函数搜集到了一个信息,可我如何从程序海洋中调出这个信息,进行数据拼接呢?

这就涉及到了input()函数的第二个知识点——函数结果的赋值。

input()函数结果的赋值

首先,我们可以对变量进行赋值,这样当我们想提取数据时,只要直接打印变量名,就能唤醒程序对数据的记忆。

这个赋值逻辑,在input()函数中也是行得通的。我们也可以通过赋值,达到随时提取输入结果的目的。但是在逻辑层面,我们需要拐一个弯。

举个例子:

  • name = input(‘请输入你的名字:’)
  • #函数赋值

虽然看上去像是给input()函数赋值,但实际上,我们是将input()函数的执行结果(收集的信息)赋值给变量name。

通俗来讲,我们放进name这个盒子里的东西,不是input()函数中提的问题,而是我们通过input()函数收集到的别人的答案。

这样,不管你在终端输入的内容是什么,不管你的回答改变多少次。只要是对input()函数所提问题的回答,都会被存储在变量中。等待你打印变量时,将回答提取出来,展示在显示屏上。

咱们完善一下上面的例子:

  • name =input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字: ')
  • print(name +‘学院欢迎你,小萌新!’)

刚才,我们在终端处输入的信息——学院的名字(每个人输入的内容不同),就是输入值。

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

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

这里有一个重点,在我们理解代码时,脑中的思维顺序是先搜集信息,再把input()函数的结果赋给变量。

但是为了书写规范及防止漏掉信息,我们需要按照代码书写格式,优先对input()函数的结果进行赋值。

在这里插入图片描述

最后总结一下函数的用法:

1.函数结果赋值给变量
2.使用函数,收集信息
3.输出结果

在这里插入图片描述

再举个例子:
在这里插入图片描述
那么,这组代码是怎么写出来的呢?

从思维角度出发,简单来讲就是:我给你两个选择,你从中挑一个,然后我给你显示对应的结果。

所以,代码的第一步就是赋值,并通过input()函数提问。

在这里插入图片描述
第二步,我们要根据回答进行条件判断:如果回答是1,就显示条件1的结果;如果选了其他选项,则显示其他条件的结果。

在这里插入图片描述
代码是写完了,但问题也来了:为什么if条件下的变量choice是字符串’1’呢?如果不是字符串格式,是整数1会出现什么结果呢?

咱们来在终端试验一下:

  • choice = input(‘请输入您的选择:’)
  • #变量赋值
  • if choice == 1:
  • #条件判断:条件1
  • print('霍格沃茨欢迎您的到来。')
    
  • #条件1的结果
  • else:
  • #条件判断:其他条件
  • print('您可是被梅林选中的孩子,我们不接受这个选项。')
    
  • #其他条件的结果

python:请输入您的选择:1
您可是被梅林选中的孩子,我们不接受这个选项。

怎么样?你输入的是1,显示的结果是else条件下的结果:‘您可是被梅林选中的孩子,我们不接受这个选项。’?

这是为什么呢?我们输入的就是条件选项中的数字1?怎么就无法出现对应的结果呢?

在这里,我们就涉及到了input()函数的第三个知识点:

input()函数的数据类型

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

在这里插入图片描述
那么,我们先来看看第一行代码中的赋值语句。

在这里插入图片描述

首先,我们从整体来看,这段代码表示的是——利用input()函数接收数据,并将数据赋值给变量choice。

其次,我们再细分着看,这行代码的每个部分代表着什么:

在这里插入图片描述
对于input()函数来说,不管我们输入的回答是什么,不管你输入的是整数1234,还是字符串『隐形斗篷是我最想拥有的魔法』,input()函数的输入值(搜集到的回答),永远会被【强制性】地转换为【字符串】类型。(Python3固定规则)

咱们在终端中试验一下:

在这里插入图片描述

python:请输入1或2:1
<class ‘str’>

是不是呀,我们输入的整数【1】或【2】就会被强制地转换为字符串的【‘1’】或【‘2’】。

所以,不管我们在终端区域输入什么,input()函数的输入值一定是【字符串】。

就这样,由于我们用赋值运算符【=】把input()函数的字符串结果,赋给了变量choice,所以这个变量也一定是字符串类型。

在这里插入图片描述

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

在这里插入图片描述
我们先来看第一块代码组的if条件语句【if choice==1】并进行拆解:

在这里插入图片描述
根据上几篇所学的条件判断知识,我们可以将第一行的if条件解释为:如果变量choice等于整数1时,则执行此if条件下的结果。

在这里插入图片描述
这回你是不是发现了什么问题?还记得我们在拆解input()函数时,提到的变量choice的数据类型吗?

在第一次变量赋值时,input()函数的输入值是字符串,'1’也是字符串;但是到了if条件判断时,if的条件变成了【choice == 1】—— 1没有了引号是个整数类型。

在这里插入图片描述
就这样,因为我们输入的信息永远是字符串,choice是一个字符串类型,而1是一个整数类型,它们当然无法相等,条件【choice == 1】无法成立,只能执行else下面的操作——打印『您可是被梅林选中的孩子,我们不接受这个选项。』

就比如下面一段代码:

在这里插入图片描述
如果在终端运行,立马会被报错按在地上摩擦摩擦。那么,请问这段斯内普教授代码的错误源是哪里?

答案就是:

input()函数输入值为字符串,但赋值为整数,这两者无法进行条件判断。

我们一行一行拆解,第一行代码的赋值语句,变量age为整数类型,第二行的变量choice为字符串类型,这两个变量由于类型不同,无法进行比较。

最后总结一下:

在这里插入图片描述

现在又有一个问题了,在我们刚刚那个例子中,只有两个选项。但是假设你有1、2、3、4……365个选项,先不说数据类型转换正确与否,单引号一个一个地打,太耗费时间了。

那么,我们就需要一个更为省力的简便方法,将所有输入值的数据类型,一次性全部变为整数。下面引入咱们新一个知识点:

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

之前咱们说过,,input()函数搜集到的信息固定是字符串嘛?还能变整数呢?

没错,input()函数的输入值在某些情况下,是可以变为整数的。那么,你还记得字符串转变为整数要怎么做吗?没错 用int()

有了int()函数,我们就可以从input()函数的源头,将输入的内容转换为整数。
在这里插入图片描述
但是,这串代码看起来像是把input()函数整个强制转换了。

可实际上,我们是将input()函数取得的结果,进行强制转换,并将强制转换的结果赋值存在名为choice的变量盒里。

这样,就算if条件是整数,程序也可以准确运行。

举个例子:

在这里插入图片描述

上面即使if条件是整数,程序也可以准确运行。

那么,我们什么时候会用到,input()函数结果的强制转换呢?

思路很简单,当你想要的答案是数字时,比如年龄;
再比如需要输入的信息是时间,或者工资等数字时;

举个例子:
在这里插入图片描述

最后总结一下知识点:

在这里插入图片描述

最后把input()函数的知识点做个总结:

在这里插入图片描述

之前学到的知识点总结

第一篇我们学习了——print()函数

在这里插入图片描述
第二篇我们学习了——数据类型

在这里插入图片描述

第三篇我们学习了——条件判断

在这里插入图片描述

今天我们学习了——input(),学会了与计算机交互式沟通了

在这里插入图片描述
在这里插入图片描述

昨天留的任务:

第一题:

  • #要先为酱酱的体重赋值,酱酱的体重是101斤
  • weight=101
  • #如果体重超过100斤的条件下,就……(条件后需加冒号)
  • if weight>100:
  • #就打印结果:不吃了!(注意检查是否自动缩进)
  • print(‘不吃了’)
  • #如果体重没有超过100斤的条件,就……(else条件前无缩进,条件后需加冒号)
  • else:
  • #就打印:放心吃吧(注意检查是否自动缩进)
  • print(‘放心吃吧’)

第二题:

  • #当宝石数量为0颗的时候,可以输出"需要惊奇队长逆转未来"
  • stonenumber=0#为宝石数量赋值
  • if stonenumber>=6:
  • #条件:如果你拥有的宝石数量大于等于6个
  • print(‘你拥有了毁灭宇宙的力量’)
  • #结果:显示‘就拥有了毁灭宇宙的力量’的结果
  • elif 0<stonenumber<=5:# 条件:如果想让宝石数量停留在5个以下,至少一个
  • print(‘绯红女巫需要亲手毁掉幻视额头上的心灵宝石’)
  • #结果:显示‘绯红女巫需要亲手毁掉幻视额头上的心灵宝石’的结果
  • #条件:当赋值不满足if和elif条件时,执行else下的命令,宝石数量为0个
  • else:
  • print(‘需要惊奇队长逆转未来’)
  • #结果:显示‘需要惊奇队长逆转未来’的结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值