补档 第1.1章:输入函数
本章目标:学会用
input()让程序“听”用户说话预计用时:10~15 分钟
完成标志:能写一个接收用户输入并做出回应的程序
为什么要补这一档?
前两章你一直在用 print() 往外“说”。但程序不能只会说,还得会“听”——听用户说了什么,然后根据用户的输入做出不同的反应。
print() 是输出,input() 是输入。两者缺一不可。
input() 是什么?
input() 是 Python 内置的输入函数。程序运行到 input() 时会停下来,等待用户敲键盘输入内容,然后按回车继续执行。
示例
name = input("请输入你的名字:")
print("你好," + name)
运行效果
请输入你的名字:张三 你好,张三
input() 括号里的字符串是提示语,会显示在屏幕上,告诉用户该输入什么。用户输入的内容会作为字符串返回,存到变量里。
input() 的三个关键点
1. 程序会暂停等待
input() 是一个阻塞函数。意思是:程序执行到这一行会停下来,等用户输入完按回车,才会继续往下走。
示例
print("开始")
name = input("输入名字:")
print("结束")
运行效果
开始
输入名字:(程序停在这里等你输入)
结束
运行后,开始会先打印出来,然后程序停下等你输入。你输入完按回车,结束才会出现。
2. input() 永远返回字符串
这是新手最容易踩的坑。input() 返回的永远是 str 类型,哪怕用户输入的是数字。
错误示例
age = input("请输入年龄:")
print(age + 1) # TypeError: can only concatenate str (not "int") to str
报错信息
TypeError: can only concatenate str (not "int") to str
用户输入了 18,但 age 是字符串 "18",不是数字 18。所以你需要手动转换类型。
3. 把输入转换成需要的数据类型
用 int() 把字符串转成整数:
示例
age = input("请输入年龄:")
age = int(age) # 把 "18" 转成 18
print(age + 1) # 19
运行效果
请输入年龄:18 19
也可以写得更紧凑:
age = int(input("请输入年龄:"))
其他常用转换:float() 转小数,eval() 转成 Python 表达式(慎用)。
一个小型示例
把 print() 和 input() 结合起来,写一个简单的对话程序:
示例
name = input("你叫什么名字?")
age = int(input("你今年几岁了?"))
city = input("你住在哪个城市?")
print("你好," + name + "!")
print("你今年" + str(age) + "岁,住在" + city + "。")
print("明年你就" + str(age + 1) + "岁了。")
运行效果
你叫什么名字?张三 你今年几岁了?18 你住在哪个城市?北京 你好,张三! 你今年18岁,住在北京。 明年你就19岁了。
注意:数字拼接时要用
str()转成字符串,否则会报错。
实操一下
练习代码
# 1. 基础输入
name = input("你的名字:")
print("你好," + name)
# 2. 输入数字并计算
price = int(input("单价:"))
quantity = int(input("数量:"))
total = price * quantity
print("总价:" + str(total))
# 3. 数字转字符串拼接
age = input("你的年龄:") # 不要 int(),保留字符串
print("明年你" + str(int(age) + 1) + "岁了") # 用一次转一次
本节小结
| 要点 | 说明 |
|---|---|
input() 是阻塞的 | 程序停下来等你输入 |
| 永远返回字符串 | 数字要手动转换 |
| 常用类型转换 | int()、float()、str() |
与 print() 配合 | 一个输出一个输入,形成完整对话 |
一句话记住:
input()是程序伸出的手,接收用户递来的信息——但递来的永远是一张写着字的纸条,如果要做算术,得先把纸条上的数字念出来(类型转换)。
by 澜湾
by LanWan