导航菜单

  • 1.Python介绍
  • 2.Python解释器
  • 3.安装Python
  • 4.VSCode开发Python
  • 5.print
  • 6.进制
  • 7.编码
  • 8.Unicode2UTF8
  • 9.整数类型
  • 10.字符串类型
  • 11.布尔类型
  • 12.变量与内存
  • 13.浮点类型
  • 14.注释
  • 15.if条件
  • 16.while循环
  • 17.运算符
  • 18.输入
  • 19.列表
  • 20.元组
  • 21.集合
  • 22.字典
  • 23.for循环
  • 18.1 基本输入:input()
  • 18.2 重要特性
    • 18.2.1 返回值永远是字符串
    • 18.2.2 类型转换与错误处理
    • 18.2.3 去除首尾空白
  • 18.3 项目开发中的实际输入来源
  • 18.4 项目开发要点

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 项目开发要点 #

  1. 记得转类型:int()、float(),并处理 ValueError
  2. 先 strip() 再校验:避免空格导致逻辑错误
  3. 范围校验:转换成功后检查 0 <= age <= 150 等
  4. Web 开发:业务输入来自 request,不是 input();本节重点是理解「外部字符串 → 类型化数据」的流程
  5. 不要无限 input 循环堆在业务代码里:复杂校验抽成函数或使用专用校验库
  6. 默认值:value = input("端口:").strip() or "8080"
← 上一节 17.运算符 下一节 19.列表 →

访问验证

请输入访问令牌

Token不正确,请重新输入