杰瑞科技汇

Python getinput函数如何正确使用?

核心要点

  1. 功能: input() 函数会暂停程序的执行,等待用户在控制台(终端)中输入一些内容,并按下回车键。
  2. 返回值: 无论用户输入什么数字、文字还是符号,input() 函数总是返回一个字符串
  3. 参数: input() 函数可以接受一个可选的字符串参数,这个参数会作为提示符显示在等待用户输入的地方。

基本用法

简单的输入

不带任何参数调用 input(),程序会直接等待用户输入。

print("请输入你的名字,然后按回车:")
name = input()
print(f"你好, {name}!")

运行示例:

请输入你的名字,然后按回车:
Alice
你好, Alice!

带提示符的输入

这是最常见的用法,在括号里放入一个字符串,作为给用户的提示。

name = input("请输入你的名字: ")
age = input("请输入你的年龄: ")
print(f"你好, {name}! 你今年 {age} 岁了。")

运行示例:

请输入你的名字: Bob
请输入你的年龄: 30
你好, Bob! 你今年 30 岁了。

重要特性:返回值总是字符串

这是初学者最容易犯错误的地方,请看下面的例子:

age = input("请输入你的年龄: ")
print(f"你输入的年龄是: {age}")
print(f"年龄的类型是: {type(age)}")
# 尝试进行数学运算
next_year_age = age + 1  # 这行代码会报错!

运行示例和错误信息:

请输入你的年龄: 25
你输入的年龄是: 25
年龄的类型是: <class 'str'>
Traceback (most recent call last):
  File "your_script_name.py", line 7, in <module>
    next_year_age = age + 1
TypeError: can only concatenate str (not "int") to str

错误分析:

  • 用户输入了 25,但 input() 函数将其作为字符串 "25" 返回并存储在 age 变量中。
  • type(age) 的结果是 <class 'str'>,证实了这一点。
  • 当你尝试执行 "25" + 1 时,Python 不知道该如何将一个字符串和一个整数相加,因此抛出了 TypeError

如何解决?类型转换

如果需要将输入的数字用于数学运算,必须先将其从字符串转换为相应的数字类型。

  • 转换为整数: 使用 int()
  • 转换为浮点数: 使用 float()

修正后的代码:

age_str = input("请输入你的年龄: ")
# 将字符串转换为整数
age_int = int(age_str)
print(f"你输入的年龄是: {age_int}")
print(f"年龄的类型是: {type(age_int)}")
# 现在可以进行数学运算了
next_year_age = age_int + 1
print(f"你明年的年龄将是: {next_year_age}")

运行示例:

请输入你的年龄: 25
你输入的年龄是: 25
年龄的类型是: <class 'int'>
你明年的年龄将是: 26

更健壮的输入处理

用户可能会输入各种奇怪的东西(比如输入文字代替数字),导致 int()float() 转换失败并引发 ValueError,为了让程序更稳定,我们可以使用 try-except 结构来处理这些潜在的错误。

while True:
    age_str = input("请输入你的年龄: ")
    try:
        # 尝试将输入转换为整数
        age = int(age_str)
        # 如果转换成功,跳出循环
        break
    except ValueError:
        # 如果转换失败,提示用户并重新开始循环
        print("输入无效,请确保你输入的是一个整数。")
print(f"成功!你的年龄是 {age}。")

运行示例 (当用户输入错误时):

请输入你的年龄: twenty
输入无效,请确保你输入的是一个整数。
请输入你的年龄: 25.5
输入无效,请确保你输入的是一个整数。
请输入你的年龄: 30
成功!你的年龄是 30。

特性 描述 示例
功能 暂停程序,等待用户从控制台输入。 name = input()
返回值 永远是字符串类型 (str) age = input("25") -> age"25"
提示符 可选参数,作为输入前的提示信息。 name = input("你的名字? ")
类型转换 如果需要数字,必须手动转换。 age = int(input("年龄? "))
错误处理 使用 try-except 来处理无效输入。 try: ... except ValueError: ...

input() 的核心特性——它总是返回字符串,是掌握 Python 用户交互的关键一步。

分享:
扫描分享到社交APP
上一篇
下一篇