pin_drop当前位置:知识文库 ❯ 图文
Python input()函数
概述
程序通常需要与用户进行交互,获取用户输入的数据。Python提供了input()函数来接收用户的键盘输入。input()函数会暂停程序执行,等待用户输入内容并按回车确认,然后将输入的内容作为字符串返回。本节将详细介绍input()函数的各种用法,包括基本输入、类型转换、输入提示以及多输入处理。
基本输入
input()函数的基本用法非常简单:
代码示例
name = input()
print(f"你好, {name}!")运行后,程序会等待用户输入:
代码示例
Alice
你好, Alice!工作流程
-
程序暂停:程序执行到
input()时暂停 -
等待输入:等待用户在控制台输入内容
-
确认输入:用户按回车键确认输入
-
返回字符串:
input()将输入内容作为字符串返回 -
继续执行:程序继续执行后续代码
提示:
input()函数的返回值始终是字符串类型,即使用户输入的是数字。
类型转换
由于input()返回的始终是字符串,如果需要数值类型的数据,必须进行类型转换。
转换为整数
代码示例
age_str = input("请输入你的年龄: ")
age = int(age_str)
print(f"10年后你 {age + 10} 岁")也可以简写为:
代码示例
age = int(input("请输入你的年龄: "))
print(f"10年后你 {age + 10} 岁")转换为浮点数
代码示例
height = float(input("请输入你的身高(米): "))
print(f"你的身高是 {height} 米")常见类型转换函数
转换错误处理
如果用户输入的内容无法转换为目标类型,会抛出ValueError:
代码示例
try:
age = int(input("请输入你的年龄: "))
print(f"你的年龄是 {age}")
except ValueError:
print("输入无效,请输入一个整数!")提示:在实际开发中,应该始终对用户输入进行验证和错误处理,因为用户可能输入任何内容。
输入提示信息
input()函数可以接受一个字符串参数作为提示信息,显示在用户输入之前:
代码示例
name = input("请输入你的姓名: ")
age = input("请输入你的年龄: ")
print(f"你好, {name}! 你今年 {age} 岁。")运行效果:
代码示例
请输入你的姓名: Alice
请输入你的年龄: 25
你好, Alice! 你今年 25 岁。多行提示
代码示例
print("=== 用户注册 ===")
username = input("用户名: ")
password = input("密码: ")
email = input("邮箱: ")
print(f"注册成功!用户名: {username}, 邮箱: {email}")格式化提示信息
代码示例
item = input("请输入商品名称: ")
price = float(input(f"请输入{item}的价格: "))
quantity = int(input(f"请输入{item}的数量: "))
total = price * quantity
print(f"{item} 总价: {total:.2f}元")多输入处理
当需要一次输入多个值时,可以采用以下方法:
方法一:多次调用input
代码示例
name = input("姓名: ")
age = input("年龄: ")
city = input("城市: ")
print(f"{name}, {age}岁, 来自{city}")方法二:使用split分割输入
让用户在一行中输入多个值,用空格或其他分隔符分隔:
代码示例
data = input("请输入姓名 年龄 城市(用空格分隔): ")
name, age, city = data.split()
print(f"{name}, {age}岁, 来自{city}")方法三:指定分隔符
代码示例
data = input("请输入日期(用-分隔): ")
year, month, day = data.split("-")
print(f"{year}年{month}月{day}日")方法四:输入列表
代码示例
numbers_str = input("请输入多个数字(用空格分隔): ")
numbers = [int(x) for x in numbers_str.split()]
print(f"输入的数字: {numbers}")
print(f"总和: {sum(numbers)}")
print(f"平均值: {sum(numbers) / len(numbers):.2f}")方法五:使用map批量转换
代码示例
a, b = map(int, input("请输入两个整数(用空格分隔): ").split())
print(f"{a} + {b} = {a + b}")
print(f"{a} * {b} = {a * b}")代码示例
示例1:简单的计算器
代码示例
print("=== 简单计算器 ===")
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:
result = num1 / num2
else:
result = "错误:除数不能为零"
else:
result = "错误:不支持的运算符"
print(f"{num1} {operator} {num2} = {result}")示例2:BMI计算器
代码示例
name = input("请输入你的姓名: ")
weight = float(input("请输入体重(kg): "))
height = float(input("请输入身高(m): "))
bmi = weight / (height ** 2)
print(f"\n{name}的健康报告:")
print(f"BMI指数: {bmi:.1f}")
if bmi < 18.5:
category = "偏瘦"
elif bmi < 24:
category = "正常"
elif bmi < 28:
category = "偏胖"
else:
category = "肥胖"
print(f"体型分类: {category}")示例3:多值输入与统计
代码示例
scores_str = input("请输入多个成绩(用空格分隔): ")
scores = [float(x) for x in scores_str.split()]
print(f"成绩列表: {scores}")
print(f"最高分: {max(scores)}")
print(f"最低分: {min(scores)}")
print(f"平均分: {sum(scores) / len(scores):.1f}")注意事项
返回值是字符串:
input()始终返回字符串,需要数值运算时必须进行类型转换。
类型转换风险:用户可能输入无法转换的内容,应使用
try-except处理ValueError。
安全提示:不要使用
eval()处理不可信的用户输入,存在安全风险。
输入为空:用户直接按回车时,
input()返回空字符串"",需要处理这种情况。
密码输入:如果需要隐藏输入内容(如密码),可以使用
getpass模块的getpass()函数。
小结
本节我们学习了:
-
基本输入:使用
input()获取用户键盘输入,返回值为字符串 -
类型转换:使用
int()、float()等函数将字符串转换为数值类型 -
输入提示信息:在
input()中传入字符串参数作为提示 -
多输入处理:使用
split()、map()等方法处理多个输入值
input()函数是Python程序与用户交互的基本方式,掌握其用法和类型转换是编写交互式程序的基础。
练习题
练习1
编写一个程序,要求用户输入摄氏温度,然后将其转换为华氏温度并输出。转换公式为:F = C * 9 / 5 + 32。
练习2
编写一个程序,让用户在一行中输入三个整数(用逗号分隔),然后计算并输出这三个数的和、平均值和最大值。
常见问题
input()函数的返回值是什么类型?
input()函数的返回值始终是字符串类型,即使用户输入的是数字。如果需要数值类型,必须使用int()或float()等函数进行类型转换。
如何处理用户输入导致的类型转换错误?
当用户输入的内容无法转换为目标类型时,会抛出ValueError。应该使用try-except语句捕获异常,并给出友好的错误提示。
如何一次接收多个输入值?
可以使用split()方法将用户输入按分隔符拆分为多个部分,然后使用解包赋值或map()函数进行批量转换。例如:a, b = map(int, input().split())。
为什么不建议使用eval()处理用户输入?
eval()会执行任意Python代码,恶意用户可能输入危险代码来破坏系统。因此,在处理不可信的用户输入时,应避免使用eval(),改用安全的类型转换方法。
如何隐藏用户的输入内容(如密码)?
可以使用Python内置的getpass模块中的getpass()函数,它会在用户输入时隐藏显示内容,适用于密码等敏感信息的输入场景。
本文涉及AI创作
内容由AI创作,请仔细甄别