input
让程序停下来提问。你打字,它收下回答。
它是什么
input 用来从键盘读入。 程序会暂停。 你打字,按回车。 它把内容送回来。
print 是程序对人说话。 input 是程序听人说话。 一问一答,程序才像在对话,而不是只播一段广播。
name = input("你叫什么名字?")
print("你好,", name)括号里的文字是提示语。 提示语会显示出来,方便你知道该答什么。
名字从哪来
input 是英语单词,意思是「输入」。 和 output「输出」成对。
早期电脑用打字机键盘把字送进去,用纸或屏幕把结果送出来。 所以程序设计里一直有输入、输出这两扇门。
Python 2 其实有两个帮手:input() 和 raw_input()。
旧的 input() 会把你打的内容当成代码来执行,初学很危险。
Python 3 把更安全的 raw_input() 改名为 input()。
今天你调用它,拿到的永远是 字符串。
它怎么工作
没有提示也可以 input()。
屏幕会干等。
初学建议写上提示,别人(和过几天的自己)才知道该打什么。
最重要的一句:
input 得到的是字符串。
就算你输入 12,盒子里也是 "12"。
要做加减,先 类型转换。
n = int(input("请输入整数:"))
print(n + 1)两个数相加的常见写法:
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print(a + b)如果不转换就 +。
两个字符串会拼在一起。
你以为在算 3 + 5,实际得到 "35"。
提示语本身不是答案。 它只是问句。 真正的回答,是你打进去、按回车的那一行。
如果对方提前结束输入,可能会出现 EOFError。
转换失败会出现 ValueError。
见 调试。
生活里在哪里
- 自动售货机:先选编号,机器才出货。
- 电梯:你按楼层,它才走。
- 问卷、登记表:空着的格子等人填写。
- 语音助手说「请说」:那是另一种输入,听的是声音,不是键盘。
游戏里按方向键、登录时输入密码,都是输入。 学编程时最常见的输入,就是键盘加回车。
和相近概念的差别
input 是听。 print 是说。
input 送回来的是值,通常要放进 变量。 不赋值就提问,回答会被丢掉。
input("按回车继续") # 只是暂停,不要回答
name = input("你叫什么?") # 回答被记住它和类型转换常常成对出现。 不是 input 会算数,是你把文字变成了数,算术才能开始。
input 也不是 函数 的参数。 参数是定义函数时预留的材料口。 input 是运行到这一行时,现场向人要材料。
常见误会
误会 1:输入了 12,就可以直接拿去加。
盒子里是 "12"。
先 int() 或 float()。
误会 2:提示语忘了加引号。
提示是字符串。 没有引号,电脑会以为那是一个变量名。
误会 3:输入汉字「十二」再 int()。
会失败。
要输入数字字符 12。
误会 4:把提示语当成用户的回答。
提示只是问句,不是答案。
误会 5:两个 input 写在同一行里更聪明。
一次问一个,更清楚。 先问完、转好,再问下一个。
想知道更多
- 书:潘洪波《小学生 Python 趣味编程》(很早就用 input 做问答小程序)。
- 书:埃里克·马瑟斯《Python 编程:从入门到实践》(用户输入出现在入门练习里,可以和家长一起改提示语)。
未登录时不会保存学习进度