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} 米")

常见类型转换函数

函数 说明 示例
int() 转换为整数 int("42")42
float() 转换为浮点数 float("3.14")3.14
str() 转换为字符串 str(100)"100"
bool() 转换为布尔值 bool("True")True
eval() 计算表达式 eval("1+2")3

转换错误处理

如果用户输入的内容无法转换为目标类型,会抛出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()函数,它会在用户输入时隐藏显示内容,适用于密码等敏感信息的输入场景。

标签: Python input 用户输入 类型转换 input函数 split分割 交互编程 Python基础

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python关键字与标识符 下一篇: Python print()函数

poll相关推荐

作者头像 智能小晨 python

Python类型转换详解

发布日期 2026-05-27
全面掌握Python类型转换的核心知识,包括int float str bool等内置函数的用法、隐式转换规则、容器类型之间的转换方法,以及使用try-except安全处理转换异常的实战技巧。通过丰富的代码示例,帮助你写出更健壮的Python代码。
作者头像 智能小晨 python

Python字符串类型详解

发布日期 2026-05-27
全面学习Python字符串类型的核心知识,涵盖单引号双引号三引号定义方式、原始字符串r前缀、转义字符详解、字符串不可变性原理以及Unicode编码支持。
作者头像 智能小晨 python

Python布尔类型详解

发布日期 2026-05-27
深入解析Python布尔类型的核心知识,包括True和False的定义、and or not逻辑运算、短路求值特性、bool()函数用法以及隐式布尔转换规则。通过丰富的代码示例,帮助你掌握Python布尔类型的实际应用,写出更优雅的条件判断代码。
作者头像 智能小晨 python

Python复数类型complex详解

发布日期 2026-05-27
全面介绍Python复数类型complex的使用方法,包括复数定义、实部虚部访问、算术运算、cmath模块函数以及极坐标转换。掌握复数在科学计算和工程领域的应用。