学径 LearnPath

CAICP-E · Python 编程基础 / Wiki

input

让程序停下来提问。你打字,它收下回答。

它是什么

input 用来从键盘读入。 程序会暂停。 你打字,按回车。 它把内容送回来。

print 是程序对人说话。 input 是程序听人说话。 一问一答,程序才像在对话,而不是只播一段广播。

python
name = input("你叫什么名字?")
print("你好,", name)

括号里的文字是提示语。 提示语会显示出来,方便你知道该答什么。

名字从哪来

input 是英语单词,意思是「输入」。 和 output「输出」成对。

早期电脑用打字机键盘把字送进去,用纸或屏幕把结果送出来。 所以程序设计里一直有输入、输出这两扇门。

Python 2 其实有两个帮手:input()raw_input()。 旧的 input() 会把你打的内容当成代码来执行,初学很危险。 Python 3 把更安全的 raw_input() 改名为 input()。 今天你调用它,拿到的永远是 字符串

它怎么工作

没有提示也可以 input()。 屏幕会干等。 初学建议写上提示,别人(和过几天的自己)才知道该打什么。

最重要的一句:

input 得到的是字符串。 就算你输入 12,盒子里也是 "12"

要做加减,先 类型转换

python
n = int(input("请输入整数:"))
print(n + 1)

两个数相加的常见写法:

python
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print(a + b)

如果不转换就 +。 两个字符串会拼在一起。 你以为在算 3 + 5,实际得到 "35"

提示语本身不是答案。 它只是问句。 真正的回答,是你打进去、按回车的那一行。

如果对方提前结束输入,可能会出现 EOFError。 转换失败会出现 ValueError。 见 调试

生活里在哪里

  • 自动售货机:先选编号,机器才出货。
  • 电梯:你按楼层,它才走。
  • 问卷、登记表:空着的格子等人填写。
  • 语音助手说「请说」:那是另一种输入,听的是声音,不是键盘。

游戏里按方向键、登录时输入密码,都是输入。 学编程时最常见的输入,就是键盘加回车。

和相近概念的差别

input 是听。 print 是说。

input 送回来的是值,通常要放进 变量。 不赋值就提问,回答会被丢掉。

python
input("按回车继续")  # 只是暂停,不要回答
name = input("你叫什么?")  # 回答被记住

它和类型转换常常成对出现。 不是 input 会算数,是你把文字变成了数,算术才能开始。

input 也不是 函数 的参数。 参数是定义函数时预留的材料口。 input 是运行到这一行时,现场向人要材料。

常见误会

误会 1:输入了 12,就可以直接拿去加。

盒子里是 "12"。 先 int()float()

误会 2:提示语忘了加引号。

提示是字符串。 没有引号,电脑会以为那是一个变量名。

误会 3:输入汉字「十二」再 int()

会失败。 要输入数字字符 12

误会 4:把提示语当成用户的回答。

提示只是问句,不是答案。

误会 5:两个 input 写在同一行里更聪明。

一次问一个,更清楚。 先问完、转好,再问下一个。

想知道更多

  • 书:潘洪波《小学生 Python 趣味编程》(很早就用 input 做问答小程序)。
  • 书:埃里克·马瑟斯《Python 编程:从入门到实践》(用户输入出现在入门练习里,可以和家长一起改提示语)。

未登录时不会保存学习进度