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