input()输入命令
input() 是 Python 中最常用的输入函数,用于从用户获取键盘输入。在程序中使用 input() 可以让程序与用户互动,根据用户的输入执行不同的操作。
基本语法
input 函数的基本语法如下:
input([prompt])
- prompt: 可选参数,在等待输入时显示的提示信息
- 返回值: 用户输入的内容,总是以字符串形式返回
基本用法
1. 简单输入
name = input("请输入你的名字: ")
print("你好,", name)
print("你好,", name)
2. 输入数字并进行计算
num1 = input("请输入第一个数字: ")
num2 = input("请输入第二个数字: ")
print("和为:", float(num1) + float(num2))
num2 = input("请输入第二个数字: ")
print("和为:", float(num1) + float(num2))
重要提示
input() 函数返回的值总是字符串类型!如果要进行数学计算,需要先将输入转换为数字类型:
- int() - 转换为整数
- float() - 转换为浮点数
3. 同时输入多个值
inputs = input("请输入姓名和年龄(用空格分隔): ").split()
print("姓名:", inputs[0], "年龄:", inputs[1])
print("姓名:", inputs[0], "年龄:", inputs[1])
4. 输入密码(不回显)
Python 标准库中没有直接隐藏密码输入的方法,但可以使用 getpass 模块:
import getpass
password = getpass.getpass("请输入密码: ")
print("密码已接收!")
password = getpass.getpass("请输入密码: ")
print("密码已接收!")
输入验证
在实际应用中,需要对用户输入进行验证,确保输入符合要求:
while True:
age = input("请输入你的年龄: ")
if age.isdigit():
age = int(age)
if age > 0 and age < 120:
break
else:
print("年龄必须在0到120之间!")
else:
print("请输入有效的数字!")
age = input("请输入你的年龄: ")
if age.isdigit():
age = int(age)
if age > 0 and age < 120:
break
else:
print("年龄必须在0到120之间!")
else:
print("请输入有效的数字!")
input() 相关函数和方法
函数/方法 | 描述 | 示例 |
---|---|---|
input() | 获取用户输入 | name = input("请输入姓名") |
int() | 将字符串转换为整数 | num = int(input("输入数字")) |
float() | 将字符串转换为浮点数 | price = float(input("输入价格")) |
eval() | 执行字符串表达式(谨慎使用) | result = eval(input("输入表达式")) |
.strip() | 去除输入字符串两端的空格 | input().strip() |
.split() | 分割输入字符串 | values = input().split() |
安全提示
避免使用 eval() 函数处理用户输入!
eval() 可以执行任何Python代码,如果用户输入恶意代码,可能对系统造成危害。在实际应用中,应使用更安全的方法处理输入。
实战练习
练习1:个人信息录入
编写一个程序,要求用户输入姓名、年龄和学校,然后输出完整的自我介绍:
请输入你的姓名: 小明
请输入你的年龄: 10
请输入你的学校: 希望小学
输出:
大家好!我叫小明,今年10岁,在希望小学上学。
请输入你的年龄: 10
请输入你的学校: 希望小学
输出:
大家好!我叫小明,今年10岁,在希望小学上学。
练习2:数学计算器
创建一个简单的计算器程序:
请输入第一个数字: 8
请输入运算符(+, -, *, /): *
请输入第二个数字: 7.5
输出:
8 * 7.5 = 60.0
请输入运算符(+, -, *, /): *
请输入第二个数字: 7.5
输出:
8 * 7.5 = 60.0
练习3:成绩转换器
编写一个程序将百分制成绩转换为等级:
90及以上: A
80-89: B
70-79: C
60-69: D
60以下: E
80-89: B
70-79: C
60-69: D
60以下: E
要求:输入分数,输出对应等级
常见问题
- Q: 为什么我的数字输入不能进行计算?
A: input() 返回的是字符串类型,需要使用 int() 或 float() 转换为数值类型。 - Q: 如何让用户输入多行文本?
A: 可以使用循环多次调用 input(),或使用特殊结束符。 - Q: 如何防止用户输入错误导致程序崩溃?
A: 使用 try-except 语句捕获异常:
try: age = int(input("输入年龄"))
except: print("请输入数字") - Q: 如何隐藏密码输入?
A: 使用 getpass 模块中的 getpass 函数。