一、基本语法
input(prompt)
- prompt(可选):是一个字符串,用作提示信息,显示在等待用户输入之前。
- 返回值:用户输入的 字符串(str 类型)。
示例:
user_input = input("请输入内容:")
print("你输入的是:", user_input)
输出(假设你输入了“hello”):
请输入内容:hello
你输入的是: hello
二、返回值永远是字符串
这是初学者最常见的误区之一。即使你输入的是数字,input() 返回的也始终是字符串类型。
x = input("请输入一个数字:")
print(x)
print(type(x))
输出(输入 123):
123
<class 'str'>
如果你要将其当作数字处理,必须显式转换:
x = int(input("请输入一个整数:")) # 输入例如 10
y = float(input("请输入一个小数:")) # 输入例如 3.14
三、与类型转换配合使用
a = int(input("请输入一个整数:"))
b = float(input("请输入一个小数:"))
print(a + b)
如果用户输入无法转换,会抛出 ValueError,所以建议配合 try...except 使用:
try:
age = int(input("请输入年龄:"))
print("你明年就", age + 1, "岁了")
except ValueError:
print("输入无效,请输入一个整数")
四、input() 多用于 CLI 交互
input() 常用于命令行交互式程序,例如:
username = input("请输入用户名:")
password = input("请输入密码:")
print("欢迎你,", username)
注意:input() 不能隐藏密码,如果你要实现密码隐藏功能,需要用 getpass 模块:
from getpass import getpass
password = getpass("请输入密码(输入时不会显示):")
五、常见用法示例
1. 输入多个值(手动分割)
data = input("请输入两个数字,用空格分隔:")
a, b = map(int, data.split())
print(a + b)
2. 使用列表接收多个输入
nums = list(map(int, input("请输入多个数字:").split()))
print("你输入的数字有:", nums)
六、输入验证和循环重试
while True:
user_input = input("请输入1~10之间的整数:")
if user_input.isdigit():
num = int(user_input)
if 1 <= num <= 10:
print("输入有效:", num)
break
else:
print("数字不在范围内。")
else:
print("请输入有效的数字。")
七、小技巧和注意事项
技巧 | 用法 |
去除输入空格 | input().strip() |
分割多个值 | input().split() |
转换类型 | int(), float(), bool() 等 |
安全密码输入 | 使用 getpass.getpass() |
八、input() 在不同 Python 版本中的差异
- Python 2 中有 raw_input() 和 input() 两个函数,raw_input() 相当于 Python 3 的 input()。
- Python 3 中只保留了 input(),并且默认返回字符串。