input()函数

如下所示:这封入学信,将带你运用input()函数,开启与计算机实现“双向沟通”的新篇章。

import timeprint('亲爱的同学:')
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('您可是被梅林选中的孩子,我们不接受这个选项。')

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

想实现真正的人机互动沟通的关键,就是:有来有往。比如,校长问你要不要来巴拉巴拉学魔法,需要给程序输入一个提问命令:你要来霍格沃茨吗?

程序得令后,立马把校长的提问一字不改地显示在你的计算机屏幕上,问:你要来霍格沃茨吗?

那么,这个人类用键盘向电脑提供指令,再通过电脑把问题显示在显示器上,等人回答的过程,就是通过input()函数实现的。

input()函数的具体用法、背后的逻辑究竟是什么呢?这关,从四个角度逐个击破input()函数。

input()函数的使用

首先,让我们通过一段代码,来看一看input()函数是如何使用的:

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

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

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

可是,我们为什么要在终端处输入回答呢?不输入行不行?

事实上,我们可以把input()函数当作一扇链接现实世界与代码世界的门。

当问题从代码世界传递给我们,可我们却没有回答时,这扇等待输入的input()大门,就会一直处于敞开状态,一直等着你往里送回答。

而当我们输入信息后,这扇input()大门便会关上,继续执行下面的命令。

下面,我们来总结一下input()函数的使用方法:

input()函数结果的赋值

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

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

比如,以我们下面这串代码为例

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

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

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

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

而这些展示在终端的信息/回答/数据,在代码世界,我们可以称其为输入值——我们输入给函数的内容。

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

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

input()函数要怎么用呢?

首先,我们需要对input()函数的结果进行赋值,然后使用input()函数搜集信息,最后再用print()函数输出结果。

我们再用一张图,来直观地总结一下。

掌握了input()函数的综合使用场景,我们再来回看一下本关卡最开始,霍格沃茨来信的代码。

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

那么,这组代码是怎么写出来的呢?

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

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

choice = input('请输入您的选择:')
#变量赋值

第二步,我们要根据回答进行条件判断:如果回答是1,就显示条件1的结果;如果选了其他选项,则显示其他条件的结果。

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

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

input()函数的数据类型

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

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

那么,我们先来看看第一行代码中的赋值语句。

choice = input('请输入您的选择:')
#变量赋值

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

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

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

比如:

choice = input('请输入1或2:')
print(type(choice))#我们输入的整数【1】或【2】就会被强制地转换为字符串的【'1'】或【'2'】。
请输入1或2:1
<class 'str'>

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

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

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

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

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

我们可以将第一行的if条件解释为:如果变量choice等于整数1时,则执行此if条件下的结果。

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

就这样,因为我们输入的信息永远是字符串,choice是一个字符串类型,而1是一个整数类型,它们当然无法相等,条件【choice == 1】无法成立,只能执行else下面的操作——打印

通过一张图再来加深一下,这个在未来非常有用,也是非常重要的知识点:

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

我们就可以从input()函数的源头,将输入的内容转换为整数

choice = int(input('请输入您的选择:'))
#将输入值强制转换为整数,并赋值给变量choice

这串代码看起来像是把input()函数整个强制转换了。

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

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

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

思路很简单,当你想要的答案是数字时

age = int(input('猜一猜巫师的『法定成年年龄』是几岁,请输入:'))
#将输入的岁数(字符串),强制转换为整数if age > 17:
#当年龄(整数)大于17(整数)时print('哈哈,居然比这个年龄还要小呢!')
#打印if条件下的结果elif age == 17:
#当年龄(整数)等于17(整数)时print('正确!我猜你是个巫师啦~')
#打印if条件下的结果else:
#当年龄(整数)小于17(整数)时print('呜呜,这个年龄~我还是个宝宝呢,正确答案是17岁哦')
#打印else条件下的结果

再比如需要输入的信息是时间,或者工资等数字时:

money = int(input('你一个月工资多少钱?'))
#将输入的工资数(字符串),强制转换为整数if money >= 10000:
#当工资数(整数)大于等于10000(整数)时print('土豪我们做朋友吧!')
#打印if条件下的结果else:
#当工资数(整数)小于10000(整数)时print('我负责赚钱养家,你负责貌美如花~')
#打印else条件下

我们再来归纳一下input()函数数据类型强制转换的知识点:

 input()函数知识点总结

小练习:

接受了霍格沃茨来信的你,带着欣喜与好奇,跟着魔咒学老师吴枫教授,来到了巫师世界的对角巷。在这个相当于人类集市的对角巷,你立刻被魔法世界稀奇古怪的东西吸引,想掏手机刷花呗买买买。
但是吴枫教授说,麻瓜(没有魔法的人)货币在魔法世界不流通,但是你可以去巫师世界的银行——古灵阁兑换货币。你立刻跟着吴枫老师跑到了古灵阁。当你进到巫师世界的银行时,就有银行的小精灵职员问好:

注意:以下背景与题目要求相关
小精灵:您好,欢迎来到古灵阁,请问您需要帮助吗?需要or不需要?
你:需要
小精灵:请问您需要什么帮助呢?1 存取款;2 货币兑换;3 咨询
你:2
小精灵:金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币
小精灵:请问您需要兑换多少金加隆呢?
(你说了一个数字N)
小精灵:好的,我知道了,您需要兑换(你说的数字N)金加隆。
小精灵:那么,您需要付给我(你说的数字N*51.3)人民币。

注1:如果选择不需要帮助,小精灵会礼貌地说'好的,再见。'
注2: 如果选择帮助【1 存取款】,小精灵会推荐你去存取款窗口;如果选择帮助【3 咨询】,小精灵会推荐你去咨询窗口。

import time
print('小精灵:您好,欢迎来到古灵阁,请问您需要帮助吗?1 需要or 2 不需要?')
time.sleep(1)
help = int(input('请选择:'))
if help == 2:print('好的,再见!'+'期待下次光临!')else:time.sleep(1)help2 = int(input('小精灵:请问您需要什么帮助呢?1 存取款;2 货币兑换;3 咨询\n请选择:'))if help2 == 1:time.sleep(1)print('推荐你去存取款窗口哦0-0')elif help2 == 3:time.sleep(1)print('推荐你去咨询窗口哦0-0')else:print('小精灵:金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币')time.sleep(1)money = int(input('小精灵:请问您需要兑换多少金加隆呢?\n请输入要兑换的金额:'))time.sleep(1)print('好的,我知道了,您需要兑换'+str(money)+'金加隆。')time.sleep(0.5)RMB=money*51.3time.sleep(1)print('那么,您需要付给我'+str(RMB)+'人民币。')print('欢迎下次光临!')

python自己的手稿四之互动沟通相关推荐

  1. python第七关再来一盘_python:第3关:霍格沃茨来信(互动沟通)

    图片发自简书App要想走得更远,我们已经要掌握Python的代码逻辑,利用正确的[数据]和合理的[逻辑]构造命令,最后还需[回应]计算机,[输入]自己的信息.而这个传递信息的[回应]动作就是input ...

  2. mini-MBA学习总结四:高效沟通

    mini-MBA学习总结四:高效沟通 1 学习资料 http://minimba.eceibs20.com 2 学习内容介绍: 高效沟通 这一部分主要介绍了管理你的提问.提升领悟力.认识管理中的沟通. ...

  3. 《Python程序设计》实验四 Python综合实践实验报告

    <Python程序设计>实验四 Python综合实践实验报告 1.实验内容 Python综合应用:爬虫.数据处理.可视化.机器学习.神经网络.游戏.网络安全等. 在华为ECS服务器(Ope ...

  4. 用Python分析了1w四六级数据,教你如何通过四六级!

    微信改版,加星标不迷路! 用Python分析了1w四六级数据,教你如何通过四六级! 作者:阿广 概述 前言 数据介绍 预期结果 实现过程 搞笑一刻 阿广说 每日问题 前言 陈奕迅说过:在有生的瞬间,考 ...

  5. python学习之第四课时--运算符

    python学习之第四课时--运算符 运算符 1.算数运算 运算符 描述 实例 a=10,b=20 = 加,两个对象相加 a+b输出30 - 减,一个数减去另一个数 a-b输出-10 * 乘,两个数相 ...

  6. Python正则表达式使用的四个基本步骤

    http://blog.itpub.net/31403259/viewspace-2157701/ Python正则表达式使用的四个基本步骤     1.用import re导入正则表达式模块     ...

  7. python安装第三方库-python第三方库的四种安装方法

    讲解一下python第三方库的四种安装方法 问题场景 (我的操作系统windows): 我使用pip install selenium 发现先爆出一大段黄色警告日志,最后是两段红色的错误日志,无法成功 ...

  8. 机器学习算法与Python实践之(四)支持向量机(SVM)实现

    机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...

  9. 贪吃蛇程序设计报告python_20192116 2019-2020-2 《Python程序设计》实验四报告

    20192116 2019-2020-2 <Python程序设计>实验四报告 课程:<Python程序设计> 班级: 1921 姓名: 饶欢 学号:20192116 实验教师: ...

最新文章

  1. Object arrays cannot be loaded when allow_pickle=False
  2. VTK:可视化之CubeAxesActor2D
  3. Java抽象– ULTIMATE教程(PDF下载)
  4. 一训练就显存爆炸?Facebook 推出 8 比特优化器,两行代码拯救你的显存!
  5. pandas 读取所有表头_像用excel一样用pandas
  6. 远程办公(2)-重新定义“雇佣关系”:交易成果,而不是时间
  7. URAL 1086 Cryptography
  8. 七牛云:ckeditor JS SDK 结合 C#实现多图片上传。
  9. istio入门与实战 pdf 下载_Istio实战指南 PDF 下载
  10. 【贪心+堆优化】奶牛晒衣服 dry.pas/c/cpp
  11. xapp1025仿真
  12. 西湖大学张岳老师NLP课程笔记1 Introduction
  13. PowerBI应用案例:杜邦分析图动态观察财务指标
  14. 由《樱桃小丸子》想到的……(未完成)
  15. 分布式系统中间件整理
  16. Python实战——ESIM 模型搭建(keras版)
  17. 查看java编程环境是否配置成功
  18. layui table 动态设置 elem(绑定table)和 where 条件参数
  19. 使用vue语法编写程序打印乘法表
  20. 如何用AD17在PCB板子上添加logo

热门文章

  1. 虚拟机 安装 CUDA 可行性说明
  2. 程序自动修复相关工作总结
  3. android浏览器400错误代码,console.log在谷歌浏览器和Android浏览器的本地代码错误...
  4. 小学生c语言入门ppt,C语言入门至精完整版46759.ppt
  5. UVa1647 Computer Transformation
  6. 国际及国内计算机界核心期刊和会议
  7. 基础商务谈判培训技巧
  8. 人工智能框架实战精讲:Keras项目-英文语料的DNN、Word2Vec、CNN、LSTM文本分类实战与调参优化
  9. Python错误日志
  10. centos 磁盘重新分区操作实践