核心要点
- 功能:
input()函数会暂停程序的执行,等待用户在控制台(终端)中输入一些内容,并按下回车键。 - 返回值: 无论用户输入什么数字、文字还是符号,
input()函数总是返回一个字符串。 - 参数:
input()函数可以接受一个可选的字符串参数,这个参数会作为提示符显示在等待用户输入的地方。
基本用法
简单的输入
不带任何参数调用 input(),程序会直接等待用户输入。
print("请输入你的名字,然后按回车:")
name = input()
print(f"你好, {name}!")
运行示例:
请输入你的名字,然后按回车:
Alice
你好, Alice!
带提示符的输入
这是最常见的用法,在括号里放入一个字符串,作为给用户的提示。
name = input("请输入你的名字: ")
age = input("请输入你的年龄: ")
print(f"你好, {name}! 你今年 {age} 岁了。")
运行示例:
请输入你的名字: Bob
请输入你的年龄: 30
你好, Bob! 你今年 30 岁了。
重要特性:返回值总是字符串
这是初学者最容易犯错误的地方,请看下面的例子:
age = input("请输入你的年龄: ")
print(f"你输入的年龄是: {age}")
print(f"年龄的类型是: {type(age)}")
# 尝试进行数学运算
next_year_age = age + 1 # 这行代码会报错!
运行示例和错误信息:
请输入你的年龄: 25
你输入的年龄是: 25
年龄的类型是: <class 'str'>
Traceback (most recent call last):
File "your_script_name.py", line 7, in <module>
next_year_age = age + 1
TypeError: can only concatenate str (not "int") to str
错误分析:
- 用户输入了
25,但input()函数将其作为字符串"25"返回并存储在age变量中。 type(age)的结果是<class 'str'>,证实了这一点。- 当你尝试执行
"25" + 1时,Python 不知道该如何将一个字符串和一个整数相加,因此抛出了TypeError。
如何解决?类型转换
如果需要将输入的数字用于数学运算,必须先将其从字符串转换为相应的数字类型。
- 转换为整数: 使用
int() - 转换为浮点数: 使用
float()
修正后的代码:
age_str = input("请输入你的年龄: ")
# 将字符串转换为整数
age_int = int(age_str)
print(f"你输入的年龄是: {age_int}")
print(f"年龄的类型是: {type(age_int)}")
# 现在可以进行数学运算了
next_year_age = age_int + 1
print(f"你明年的年龄将是: {next_year_age}")
运行示例:
请输入你的年龄: 25
你输入的年龄是: 25
年龄的类型是: <class 'int'>
你明年的年龄将是: 26
更健壮的输入处理
用户可能会输入各种奇怪的东西(比如输入文字代替数字),导致 int() 或 float() 转换失败并引发 ValueError,为了让程序更稳定,我们可以使用 try-except 结构来处理这些潜在的错误。
while True:
age_str = input("请输入你的年龄: ")
try:
# 尝试将输入转换为整数
age = int(age_str)
# 如果转换成功,跳出循环
break
except ValueError:
# 如果转换失败,提示用户并重新开始循环
print("输入无效,请确保你输入的是一个整数。")
print(f"成功!你的年龄是 {age}。")
运行示例 (当用户输入错误时):
请输入你的年龄: twenty
输入无效,请确保你输入的是一个整数。
请输入你的年龄: 25.5
输入无效,请确保你输入的是一个整数。
请输入你的年龄: 30
成功!你的年龄是 30。
| 特性 | 描述 | 示例 |
|---|---|---|
| 功能 | 暂停程序,等待用户从控制台输入。 | name = input() |
| 返回值 | 永远是字符串类型 (str)。 |
age = input("25") -> age 是 "25" |
| 提示符 | 可选参数,作为输入前的提示信息。 | name = input("你的名字? ") |
| 类型转换 | 如果需要数字,必须手动转换。 | age = int(input("年龄? ")) |
| 错误处理 | 使用 try-except 来处理无效输入。 |
try: ... except ValueError: ... |
input() 的核心特性——它总是返回字符串,是掌握 Python 用户交互的关键一步。
