每天学点Python知识:详解input()的各种用法

一、基本语法

input(prompt)
  • prompt(可选):是一个字符串,用作提示信息,显示在等待用户输入之前。
  • 返回值:用户输入的 字符串(str 类型)。

示例:

user_input = input("请输入内容:")
print("你输入的是:", user_input)

输出(假设你输入了“hello”):

请输入内容:hello
你输入的是: hello

二、返回值永远是字符串

这是初学者最常见的误区之一。即使你输入的是数字,input() 返回的也始终是字符串类型

x = input("请输入一个数字:")
print(x)
print(type(x))

输出(输入 123):

123
<class 'str'>

如果你要将其当作数字处理,必须显式转换

x = int(input("请输入一个整数:"))     # 输入例如 10
y = float(input("请输入一个小数:"))    # 输入例如 3.14

三、与类型转换配合使用

a = int(input("请输入一个整数:"))
b = float(input("请输入一个小数:"))
print(a + b)

如果用户输入无法转换,会抛出 ValueError,所以建议配合 try...except 使用:

try:
    age = int(input("请输入年龄:"))
    print("你明年就", age + 1, "岁了")
except ValueError:
    print("输入无效,请输入一个整数")

四、input() 多用于 CLI 交互

input() 常用于命令行交互式程序,例如:

username = input("请输入用户名:")
password = input("请输入密码:")
print("欢迎你,", username)

注意:input() 不能隐藏密码,如果你要实现密码隐藏功能,需要用 getpass 模块:

from getpass import getpass
password = getpass("请输入密码(输入时不会显示):")

五、常见用法示例

1. 输入多个值(手动分割)

data = input("请输入两个数字,用空格分隔:")
a, b = map(int, data.split())
print(a + b)

2. 使用列表接收多个输入

nums = list(map(int, input("请输入多个数字:").split()))
print("你输入的数字有:", nums)

六、输入验证和循环重试

while True:
    user_input = input("请输入1~10之间的整数:")
    if user_input.isdigit():
        num = int(user_input)
        if 1 <= num <= 10:
            print("输入有效:", num)
            break
        else:
            print("数字不在范围内。")
    else:
        print("请输入有效的数字。")

七、小技巧和注意事项

技巧

用法

去除输入空格

input().strip()

分割多个值

input().split()

转换类型

int(), float(), bool() 等

安全密码输入

使用 getpass.getpass()


八、input() 在不同 Python 版本中的差异

  • Python 2 中有 raw_input() 和 input() 两个函数,raw_input() 相当于 Python 3 的 input()。
  • Python 3 中只保留了 input(),并且默认返回字符串。
原文链接:,转发请注明来源!