- Published on
2.14.输入
- Authors

- Name
- xiaobai
1.基本输入:input() 函数
input() 函数用于从用户获取输入,它会暂停程序执行,等待用户输入内容。
1.1.基本用法
# 最简单的输入
name = input()
print(f"你好,{name}!")
1.2.带提示信息的输入
# 显示提示信息,让用户知道该输入什么
name = input("请输入你的姓名:")
age = input("请输入你的年龄:")
print(f"你好,{name}!你今年{age}岁。")
运行效果:
请输入你的姓名:张三
请输入你的年龄:25
你好,张三!你今年25岁!
2.input() 函数的重要特性
2.1.1. 返回值永远是字符串
无论用户输入什么,input() 都返回字符串类型。
# 即使输入数字,返回的也是字符串
number = input("请输入一个数字:")
print(type(number)) # <class 'str'>
print(f"你输入的是:{number}")
# 运行示例:
# 请输入一个数字:42
# <class 'str'>
# 你输入的是:42
2.2.2. 类型转换
由于 input() 返回字符串,通常需要转换为合适的类型。
# 转换为整数
age = int(input("请输入你的年龄:"))
print(f"类型:{type(age)},值:{age}")
# 转换为浮点数
height = float(input("请输入你的身高(米):"))
print(f"类型:{type(height)},值:{height}")
# 转换为布尔值(需要额外处理)
is_student = input("你是学生吗?(y/n):").lower() == 'y'
print(f"类型:{type(is_student)},值:{is_student}")
3.输入验证和错误处理
由于用户可能输入错误的数据,需要进行验证。
3.1.基本的错误处理
try:
age = int(input("请输入你的年龄:"))
print(f"你的年龄是:{age}")
except ValueError:
print("错误:请输入有效的数字!")
3.2.循环验证直到输入正确
while True:
try:
age = int(input("请输入你的年龄:"))
if age < 0 or age > 150:
print("请输入合理的年龄(0-150)")
continue
break
except ValueError:
print("错误:请输入有效的数字!")
print(f"验证通过!你的年龄是:{age}")
3.3.完整的输入验证函数
def get_valid_input(prompt, input_type=str, validation_func=None):
"""
获取有效的用户输入
参数:
prompt: 提示信息
input_type: 期望的数据类型
validation_func: 自定义验证函数
"""
while True:
try:
user_input = input(prompt)
# 类型转换
if input_type != str:
user_input = input_type(user_input)
# 自定义验证
if validation_func and not validation_func(user_input):
print("输入不符合要求,请重新输入。")
continue
return user_input
except ValueError:
print(f"错误:请输入有效的{input_type.__name__}类型数据!")
except Exception as e:
print(f"发生错误:{e}")
# 使用示例
age = get_valid_input("请输入年龄:", int, lambda x: 0 <= x <= 150)
print(f"你的年龄:{age}")
email = get_valid_input("请输入邮箱:", str, lambda x: '@' in x)
print(f"你的邮箱:{email}")
4.以下内容不用看,Python全部学完后再看
5.实际应用场景
5.1.简单的用户注册
print("=== 用户注册 ===")
username = input("请输入用户名:")
password = input("请输入密码:")
email = input("请输入邮箱:")
print(f"\n注册成功!")
print(f"用户名:{username}")
print(f"密码:{'*' * len(password)}")
print(f"邮箱:{email}")
5.2.计算器应用
try:
num1 = float(input("请输入第一个数字:"))
operator = input("请输入运算符 (+, -, *, /):")
num2 = float(input("请输入第二个数字:"))
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
elif operator == '/':
if num2 == 0:
print("错误:除数不能为零!")
else:
result = num1 / num2
else:
print("错误:不支持的运算符!")
result = None
if result is not None:
print(f"结果:{num1} {operator} {num2} = {result}")
except ValueError:
print("错误:请输入有效的数字!")
5.3.问卷调查
name = input("1. 您的姓名:")
satisfaction = input("2. 您对我们的服务满意吗?(非常满意/满意/一般/不满意):")
suggestions = input("3. 您有什么建议或意见?:")
print("\n=== 调查结果 ===")
print(f"受访者:{name}")
print(f"满意度:{satisfaction}")
print(f"建议:{suggestions}")
print("感谢您的参与!")
6.高级输入技巧
6.1.一次性输入多个值
# 方法一:使用 split() 分割
data = input("请输入多个数字,用空格分隔:").split()
numbers = [float(x) for x in data]
print(f"你输入的数字:{numbers}")
# 方法二:指定分隔符
csv_data = input("请输入数据(用逗号分隔):").split(',')
print(f"解析后的数据:{csv_data}")
# 运行示例:
# 请输入多个数字,用空格分隔:10 20 30 40
# 你输入的数字:[10.0, 20.0, 30.0, 40.0]
6.2.密码输入(不显示内容)
import getpass
# 安全地输入密码(输入时不显示内容)
password = getpass.getpass("请输入密码:")
print(f"密码长度:{len(password)}")
# 验证密码
confirm_password = getpass.getpass("请确认密码:")
if password == confirm_password:
print("密码设置成功!")
else:
print("密码不匹配!")
7.输入的最佳实践
7.1.提供清晰的提示
# 不好的提示
n = input("输入数字:")
# 好的提示
number_of_students = input("请输入学生人数(1-50):")
7.2.处理空白输入
name = input("请输入姓名:").strip()
if not name:
print("姓名不能为空!")
else:
print(f"你好,{name}!")
7.3.3. 提供默认值
# 方法一:在提示中显示默认值
language = input("选择语言 (默认: Python):").strip()
if not language:
language = "Python"
# 方法二:使用条件表达式
port = input("输入端口号:").strip()
port = int(port) if port else 8080
print(f"语言:{language},端口:{port}")
8.常见问题与解决方案
8.1.问题1:输入中文时的编码问题
# 在Python 3中通常不需要特殊处理
name = input("请输入中文姓名:")
print(f"你好,{name}!")
8.2.问题2:处理文件路径输入
import os
file_path = input("请输入文件路径:").strip()
# 处理路径中的引号
file_path = file_path.strip('"\'')
print(file_path)
8.3.问题3:输入菜单选择
def show_menu():
print("\n=== 主菜单 ===")
print("1. 查看信息")
print("2. 修改信息")
print("3. 退出")
while True:
choice = input("请选择 (1-3):").strip()
if choice in ['1', '2', '3']:
return int(choice)
else:
print("无效选择,请重新输入!")
# 使用菜单
choice = show_menu()
print(f"你选择了选项 {choice}")
9.总结
- 基本用法:
input("提示信息")获取用户输入 - 返回值:永远是字符串类型,需要时进行类型转换
- 错误处理:使用
try-except处理无效输入 - 输入验证:确保输入数据符合要求
- 实用技巧:多值输入、密码隐藏、输入超时等
- 最佳实践:清晰的提示、处理空白输入、提供默认值

