Python 教程

补档 第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