18.1 基本输入:input() #
input() 从控制台读取用户输入,程序会暂停直到用户按回车。
name = input("请输入姓名:")
print(f"你好,{name}")18.2 重要特性 #
18.2.1 返回值永远是字符串 #
无论用户输入什么,input() 都返回 str,做数值运算前必须转换:
age_str = input("请输入年龄:")
age = int(age_str) # 或一行:age = int(input("请输入年龄:"))
print(age)
price = float(input("请输入价格:"))
print(price)18.2.2 类型转换与错误处理 #
用户可能输入非数字,用 try-except 捕获:
try:
count = int(input("请输入数量:"))
print(f"数量:{count}")
except ValueError:
print("请输入有效整数")18.2.3 去除首尾空白 #
表单、命令行输入常带空格,先 strip():
username = input("用户名:").strip()
if not username:
print("用户名不能为空")18.3 项目开发中的实际输入来源 #
全栈项目里,绝大多数数据不是来自 input(),而是:
| 来源 | 说明 |
|---|---|
| HTTP 请求 | 查询参数、JSON 请求体、表单字段 |
| 配置文件 | .env、settings.py |
| 数据库 | 查询结果 |
input() 主要用于:本地脚本、简单 CLI 工具。学 Web 后会用框架接收请求参数并做校验(如 Pydantic),思路与「读字符串 → 转类型 → 校验」相同。
# CLI 脚本中仍可能用到
if __name__ == "__main__":
port = int(input("端口(默认 8000):") or "8000")密码类输入在终端可用 getpass.getpass()(不显示字符)。
import getpass
password = getpass.getpass("请输入密码:")
print(password)18.4 项目开发要点 #
- 记得转类型:
int()、float(),并处理ValueError - 先
strip()再校验:避免空格导致逻辑错误 - 范围校验:转换成功后检查
0 <= age <= 150等 - Web 开发:业务输入来自
request,不是input();本节重点是理解「外部字符串 → 类型化数据」的流程 - 不要无限
input循环堆在业务代码里:复杂校验抽成函数或使用专用校验库 - 默认值:
value = input("端口:").strip() or "8080"