本篇是《Python 从入门到初级》第 2 / 20 篇。示例使用 Python 3.12 兼容语法,完整目录结构与数据见配套源码包。
程序处理信息之前,需要先把信息保存下来。姓名是文字,温度是数字,是否完成是一个真假值。本篇用温度换算器认识变量、常见类型和输入输出。

1. 变量是给数据起一个名字
name = "小林"
age = 22
temperature = 25.5
finished = False
= 在这里表示赋值,把右边的对象交给左边的名字引用。不要把它读成数学里的恒等式。变量名可以重新绑定:age = age + 1 表示根据旧值计算新值,再保存。
先记住四种常见类型:str 保存文字,int 保存整数,float 保存常见的小数近似值,bool 保存 True 或 False。类型决定能做什么操作,而不只是显示样式。
例如 "12" + "3" 得到 "123",12 + 3 得到 15。前者拼接字符串,后者做加法。基本操作见 官方入门说明。
2. input 得到的是文字
即使用户输入 25,input() 返回的也仍然是字符串。想参与计算,需要明确转换,例如 int("25") 或 float("25.5")。
保存为 lesson02.py:
name = input("你的名字:").strip()
celsius_text = input("摄氏温度:")
celsius = float(celsius_text)
fahrenheit = celsius * 9 / 5 + 32
print(f"你好,{name}!")
print(f"{celsius:.1f} 摄氏度 = {fahrenheit:.1f} 华氏度")
print("输入转换前的类型:", type(celsius_text).__name__)
print("转换后的类型:", type(celsius).__name__)
运行 python lesson02.py。第一次输入 小林,第二次输入 25。摄氏转华氏公式为 摄氏 × 9 ÷ 5 + 32,预期看到 25.0 摄氏度 = 77.0 华氏度,转换前是 str,转换后是 float。
这个程序不是在浏览器里画输入框;input() 会在终端等待你输入并回车。程序没有结束而是在等输入时,不必反复启动它。
3. 读懂计算与输出格式
* 是乘法,/ 是除法,括号可以明确先后顺序。Python 按运算符规则计算,不会按照中文描述猜意图。
f"你好,{name}" 是 f-string,会把变量放进文字中。{celsius:.1f} 指定按一位小数展示。它改变的是展示格式,不是把变量从 float 变成某种“只有一位的小数类型”。
type(value).__name__ 用来观察类型。在排查“看起来都是 25,为什么不能加”时,查看类型往往很直接。
4. 小数和金额为什么要特别留心
常见二进制浮点数不能精确表示所有十进制小数。例如 0.1 + 0.2 的显示可能不是直接写下的 0.3。格式化输出成两位小数,并不等于所有计算都获得了十进制精确性。
本系列订单金额统一用整数分,例如 5900 表示 59.00 元;这也让后续 CSV、JSON 和数据库示例保持一致。需要按十进制规则计算时,可以学习 decimal 模块,并明确舍入、币种和业务规则。
5. 三个常见错误
float("温度25") 不能直接转换,会得到 ValueError。转换函数不会自动提取字符串里的数字。
把 name 写成 Name 会引用不同的名字。Python 区分大小写。
变量名覆盖 str、int 或 input,可能让后续调用变得异常。优先使用 user_name、total_count 这样能表达含义的名字。
目前示例遇到非法输入会显示报错,这是一个明确的边界;第 9 篇会学习如何捕获并给出更友好的提示,不要在这里临时用 eval() 处理用户输入。
6. 练习:单位换算
把程序改成“分钟换算秒”:输入 2.5 分钟,输出 150.0 秒。关键仍是先把 input 的字符串转换成数字,再乘以 60。
再输入 abc,观察报错类型和对应行号。能解释为什么成功和为什么失败,才算掌握输入与类型转换,而不是只复制了一个正常例子。
上一篇:Python 能做什么:安装环境并运行第一个程序 · 系列目录 · 下一篇:字符串处理:清洗名称、拆分标签与展示邮箱