input()
是 Python 提供的一个内置函数,用于从用户那里获取输入。它的返回值始终是一个字符串 (str) 类型,即使用户输入的是数字或其他类型。
如何使用 input()
:
基本语法:
user_input = input(prompt)
prompt
:是可选的,用于向用户显示的提示信息,通常是字符串。- 返回值:
input()
函数返回的值是一个字符串。
示例:
name = input("What is your name? ")
print("Hello,", name)
当运行这段代码时:
- 屏幕显示:
What is your name?
- 用户输入,比如:
Alice
input()
返回字符串"Alice"
,赋值给变量name
。
输出结果:
Hello, Alice
input()
的返回值始终是字符串:
即使用户输入的是数字或其他类型,input()
返回的值仍然是字符串。例如:
age = input("Enter your age: ")
print(type(age)) # 输出 <class 'str'>
如果用户输入 25
,age
的值是字符串 "25"
,而不是整数 25
。
解决方法:数据类型转换
如果需要将字符串转换为其他数据类型,可以使用以下方法:
- 转换为整数:
int()
age = int(input("Enter your age: "))
print(type(age)) # 输出 <class 'int'>
-
- 如果用户输入的是非整数内容(如
25.5
或字母),会抛出ValueError
错误。
- 如果用户输入的是非整数内容(如
- 转换为浮点数:
float()
height = float(input("Enter your height in meters: "))
print(type(height)) # 输出 <class 'float'>
- 转换为布尔值:
bool()
is_student = bool(input("Are you a student? (True/False): "))
print(type(is_student)) # 输出 <class 'bool'>
-
- 注意:任何非空字符串都会被转换为
True
,空字符串被转换为False
。
- 注意:任何非空字符串都会被转换为
处理用户输入中的异常:
用户输入的内容可能无法直接转换为期望的类型。例如:
age = input("Enter your age: ")
age = int(age) # 如果输入 "twenty",会报错
解决方案:使用 try
-except
捕获异常
try:
age = int(input("Enter your age: "))
print("Your age is", age)
except ValueError:
print("Invalid input! Please enter a valid number.")
如果用户输入 25
,输出:
Your age is 25
如果用户输入 twenty
,输出:
Invalid input! Please enter a valid number.
综合示例:输入不同类型的数据
name = input("Enter your name: ") # 输入字符串
age = int(input("Enter your age: ")) # 输入整数
height = float(input("Enter your height in meters: ")) # 输入浮点数
is_student = input("Are you a student? (yes/no): ").lower() == "yes" # 转换为布尔值
print(f"Name: {name}, Age: {age}, Height: {height}, Is Student: {is_student}")
运行示例:
- 用户输入:
Enter your name: Alice
Enter your age: 25
Enter your height in meters: 1.68
Are you a student? (yes/no): yes
- 输出:
Name: Alice, Age: 25, Height: 1.68, Is Student: True
小结:
input()
返回的值总是字符串类型。- 如果需要其他类型的数据(如整数或浮点数),需要显式转换。
- 为了避免用户输入无效数据,建议使用
try
-except
捕获错误或验证输入内容。