在 Python 中请求输入

Python 的内置input()从终端读取一行并将其作为文本返回,暂停执行直到用户响应。这使其成为交互式收集数据的最快方式,然后您可以将其转换为数字并根据需要进行验证。

方法一:根据提示读取文本输入

步骤一:使用请求输入input()并有提示消息。

name = input("Enter your name: ")

步骤2:立即打印或使用该值。

print(f"Hello {name}")

事实:input()停止程序,直到用户按下 Enter 键并返回一个字符串;提示文本与输入字段出现在同一行。


方法 2:将输入转换为数字

步骤一:将整数转换为int()当你期望整数时。

age = int(input("Enter your age: "))

步骤2:转换小数为float()当您期望浮点值时。

price = float(input("Enter a price: "))

步骤3:在数字运算(例如平方根)之前导入所需的模块。

import math
x = float(input("Enter a number: "))
y = math.sqrt(x)
print(f"The square root of {x} is {y}")

事实:用户输入默认是文本;转换为int()或者float()在计算之前。


方法三:验证并重新提示,直至输入正确

步骤一:将您的转换包装在try/except块来处理无效文本。

# one attempt
try:
    n = int(input("Enter an integer: "))
except ValueError:
    print("Invalid input.")

步骤2:循环直到用户提供有效值。

while True:
    try:
        n = float(input("Enter a number: "))
        break
    except ValueError:
        print("Wrong input, please try again.")

这种模式可以避免运行时错误并指导用户纠正输入。


方法4:从一行读取多个值

步骤一:将单个输入线拆分为多个部分split().

a, b = input("Enter two values separated by space: ").split()

步骤2:需要时将每个部分映射到一个数字。

x, y = map(int, input("Enter two integers: ").split())
print("Sum:", x + y)

这简化了数字运算的多值输入。


方法 5:使用可重用的帮助程序集中提示

步骤一:创建一个转换输入并强制执行规则的函数。

def ask(prompt, cast=str, validate=lambda _v: True, error="Invalid input."):
    while True:
        try:
            value = cast(input(prompt))
        except ValueError:
            print(error)
            continue
        if validate(value):
            return value
        print(error)

步骤2:将其重复用于是/否问题和数字范围。

# yes/no normalized to 'y' or 'n'
yn = ask("Continue (y/n)? ", cast=lambda s: s.strip().lower(),
         validate=lambda v: v in {"y", "n"},
         error="Please enter y or n.")

# menu option from 1 to 4
opt = ask("Choose 1-4: ", cast=int,
          validate=lambda v: 1 <= v <= 4,
          error="Enter a number between 1 and 4.")

这种通用模式减少了重复,并反映了社区关于使用转换器和验证集/谓词的建议。


方法 6:接受来自命令行参数的输入(非交互式)

步骤一:读取参数sys.argv从终端运行脚本时。

import sys
print("Script:", sys.argv[0])
if len(sys.argv) > 1:
    print("Args:", sys.argv[1:])

步骤2:在运行时传递值而不是提示。

# example terminal command
python script.py Hello 42

将其用于自动化或提示会阻止执行时。


方法 7:在简单的 GUI (Tkinter) 中收集输入

步骤一:构建一个最小的窗口EntryButton.

import tkinter as tk

def show():
    label.config(text=f"You entered: {entry.get()}")

root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
tk.Button(root, text="Submit", command=show).pack()
label = tk.Label(root, text="")
label.pack()
root.mainloop()

步骤2:读取回调中的文本并更新标签。

这适合不适合控制台提示的桌面应用程序。


快速提示

  • 保持提示具体,以便用户第一次输入正确的格式。
  • 始终在算术之前将文本转换为所需的类型(例如,int(),float()).
  • 使用循环try/except防止死机并引导修正。

input()作为您的基础,添加类型转换和验证以使提示可靠,或者在交互式终端不适合时切换到 CLI/GUI 输入。