第一章|值、绑定与控制流
本章目标
建立 Python 编程的基础认知:如何运行代码、值与名字的关系、程序的控制流、运算符的求值规则、数字类型的选择。
从运行第一段代码开始,理解"一切皆对象"和"名字绑定引用"的核心概念,掌握条件分支和循环,认识浮点精度限制与精确计算方案。
学习路径
按顺序阅读以下文章,每篇包含讲解、示例和练习:
运行第一段程序:环境、解释器与脚本
启动 Python 解释器,运行第一个脚本,理解交互式环境与脚本文件的区别。值与类型:名字绑定了什么
理解对象、身份、类型、值的关系,掌握基本类型,区分可变与不可变对象。控制流:让条件与重复对应真实规则
使用 if/elif/else 分支、while/for 循环、break/continue 控制程序执行路径。运算符与真值:短路、比较链与优先级
掌握布尔运算符的短路求值、比较链的简洁写法、运算符优先级规则。数字:整数、浮点、精度与 Decimal
理解 int 的任意精度、float 的精度限制、Decimal 的精确计算场景。
关键概念
对象与绑定
Python 中一切都是对象。名字(变量)不存储值,而是绑定到对象的引用。重新绑定名字不会影响其他绑定到原对象的名字。
x = [1, 2, 3]
y = x # y 和 x 绑定到同一个列表对象
x = [4, 5] # x 重新绑定到新对象
print(y) # [1, 2, 3],y 不受影响可变性
不可变对象(int、str、tuple)创建后不能改变,"修改"会创建新对象。可变对象(list、dict、set)可以原地修改,多个名字绑定到同一可变对象时需注意别名问题。
控制流与缩进
Python 用缩进(而非大括号)表示代码块。if、while、for 后的代码块必须缩进,通常用 4 个空格。
短路求值
and 遇到假值立即返回,or 遇到真值立即返回,不会执行后续表达式。这既是优化,也是实用的编程模式。
数字精度
浮点数(float)使用 IEEE 754,无法精确表示所有十进制小数。金融、货币计算应使用 decimal.Decimal。整数(int)是任意精度的,不会溢出。
前置知识
- 了解文件系统基本操作
- 能够打开终端或命令行
- 具备基本的编程概念(可选,完全新手也可以从头开始)
后续章节
完成本章后,继续学习:
第二章:函数、作用域与闭包
理解函数定义、参数模型、LEGB 作用域规则、闭包捕获变量。第三章:对象、集合与文本数据
深入列表、字典、集合、字符串、Unicode、正则表达式、日期时间、序列化。
练习答案
本章所有练习的答案和详细解释:第一章练习答案
深入阅读
为什么名字绑定而非赋值?
理解绑定模型是掌握 Python 的关键。许多奇怪行为(如默认参数陷阱、循环变量捕获)都源于对绑定的误解。第二章的闭包和第四章的对象引用会继续深化这个主题。
何时用哪种数字类型?
- int:整数计算、计数、索引
- float:科学计算、近似值、性能敏感场景(容忍精度损失)
- Decimal:金融、货币、需要精确小数
- Fraction:有理数精确计算
- complex:科学计算中的复数
Python 2 vs Python 3
Python 3 统一了整数类型(Python 2 有 int 和 long),/ 总是返回浮点数(Python 2 中整数相除返回整数),字符串默认 Unicode。本书只讲 Python 3.10+,版本演进详见第十一章。
返回Python 学习路线 · 开始第一节