Python基础语法速查:变量、数据类型与控制流
一份针对Python初学与日常开发的实用语法速查指南,系统梳理变量引用机制、核心内置数据类型特性以及分支与循环控制流的典型用法与避坑要点。
本文用于快速查阅与梳理 Python 核心基础语法。内容涵盖变量的内存引用机制、常用内置数据类型的结构与可变性规则,以及条件分支与循环控制语句的执行路径与注意事项,帮助读者在编写脚本或阅读代码时建立清晰准确的基础概念。
一、变量与赋值:引用绑定的本质
在 Python 中,变量不需要预先声明类型。给变量赋值时,解释器会在内存中创建对应的对象,并将变量名与该对象进行绑定。
1. 命名规范与基础赋值
变量名只能由字母、数字和下划线组成,且不能以数字开头。Python 社区普遍遵循 PEP 8 规范,普通变量采用下划线小写命名(如 user_age、item_count)。
# 基础赋值
total_score = 98
ratio = 0.75
user_name = "Alice"
is_active = True
# 链式赋值(多个变量指向同一个对象)
x = y = z = 0
# 多重赋值与变量交换
a, b = 10, 20
a, b = b, a # 原地交换 a 与 b 的值,无需中间临时变量
2. 核心辨析:“盒子”还是“名字标签”?
初学者常将变量理解为“存放数据的物理盒子”,赋值被视为“把数据装入盒中”。这种理解在处理简单数值时看似成立,但遇到可变对象时容易引发错误。
更准确的理解是:Python 的变量是贴在对象上的“标签”(引用)。一个对象可以同时贴有多张标签;修改可变对象的内容,所有指向该对象的变量都会看到变化。
二、核心数据类型速查与特征对比
Python 具备丰富的内置数据类型,主要分为标量类型(不可分割的基本值)和容器类型(存放多个元素)。理解各类型的可变性(Mutability)是写出健壮代码的关键。
| 类型名称 | 关键字 | 示例语法 | 可变性 | 特点与常见用途 |
|---|---|---|---|---|
| 整数 | int |
100, -5 |
不可变 | 无精度限制,支持大整数运算 |
| 浮点数 | float |
3.14, 1e-3 |
不可变 | 双精度浮点数,存在微小舍入误差 |
| 布尔值 | bool |
True, False |
不可变 | int 的子类,在算术计算中等同于 1 与 0 |
| 字符串 | str |
"Python", '速查' |
不可变 | 有序字符序列,支持切片与格式化 |
| 列表 | list |
[1, 2, "a"] |
可变 | 有序序列,支持就地插入、修改与删除 |
| 元组 | tuple |
(1, 2, "a") |
不可变 | 有序序列,通常用于不可修改的记录或函数多返回值 |
| 字典 | dict |
{"id": 1, "name": "A"} |
可变 | 键值对映射,键必须是可哈希(不可变)对象,检索极快 |
| 集合 | set |
{1, 2, 3} |
可变 | 无序且元素唯一,支持交集、并集和差集运算 |
3. 常见辨析:身份比较(is)与值比较(==)
在判断两个变量时,== 比较的是它们的内容是否相等,而 is 比较的是它们是否是同一个对象(即内存地址 id() 是否相同)。
list1 = [1, 2, 3]
list2 = [1, 2, 3]
print(list1 == list2) # True: 内容完全一致
print(list1 is list2) # False: 内存中各自独立的两个列表对象
# 对于单例对象(如 None、True、False),必须使用 is 判断:
target = None
if target is None:
print("目标为空")
三、控制流:条件分支与逻辑判断
Python 使用严格的代码缩进(通常是 4 个空格)来组织代码块。条件分支通过 if、elif 和 else 实现。
1. 条件判断语法结构
score = 85
if score >= 90:
grade = "优秀"
elif score >= 80:
grade = "良好"
elif score >= 60:
grade = "及格"
else:
grade = "不及格"
# 单行三元表达式:值1 if 条件 else 值2
status = "通过" if score >= 60 else "重修"
2. 真值与假值规则(Truthy & Falsy)
在 Python 的条件表达式中,任意对象都可以直接作为布尔判断依据。以下对象会被解释器判定为 False(假值):
- 常量:
None、False - 数值零:
0、0.0、0j - 空容器与空序列:
""(空字符串)、[](空列表)、()(空元组)、{}(空字典)、set()(空集合)
除了上述假值外,其余对象在条件判断中均视为 True。因此检查容器是否非空时,推荐写 if items:,而无需写 if len(items) > 0:。
3. 逻辑运算符与短路求值(Short-circuiting)
Python 提供 and、or、not 三个逻辑运算符。计算时遵循短路规则:
A and B:如果 A 为假,直接返回 A,不再计算 B;否则返回 B。A or B:如果 A 为真,直接返回 A,不再计算 B;否则返回 B。
四、控制流:循环遍历与跳转控制
Python 提供了 for 迭代循环与 while 条件循环两种形式,并支持 break、continue 与独有的 for...else 结构。
1. for 循环与序列遍历
Python 的 for 循环本质上是一个迭代器,用于逐一取出可迭代对象中的元素:
# 配合 range(start, stop[, step])
for i in range(1, 6): # 打印 1 到 5(含头不含尾)
print(i, end=" ")
# 遍历字典的键与值
user_info = {"name": "Bob", "role": "admin"}
for key, value in user_info.items():
print(f"{key}: {value}")
# 使用 enumerate 同时获取索引和元素
fruits = ["apple", "banana", "cherry"]
for idx, item in enumerate(fruits, start=1):
print(f"第 {idx} 项是 {item}")
2. while 循环与退出机制
当循环次数无法提前确定、完全依赖条件状态时,使用 while 循环。必须在循环体内部推进状态,避免死循环。
count = 3
while count > 0:
print(f"倒计时: {count}")
count -= 1 # 状态递减,直至条件为假退出
3. break、continue 与循环的 else 分支
break:立即终止当前整个循环,跳出循环体。continue:跳过当前这一轮循环剩余的语句,直接进入下一轮迭代。for...else/while...else:只有当循环正常结束(即未被 break 中断)时,才会执行 else 代码块。常用于元素搜索场景。
# 搜索目标数字示例
numbers = [12, 45, 68, 79, 93]
target = 68
for num in numbers:
if num == target:
print(f"找到目标: {num}")
break
else:
# 只有当整个列表遍历完毕且未遇到 break 时才执行
print("未在列表中找到目标数字")
else 挂在 for 或 while 同级缩进处。容易被误解为“循环每次条件不满足都执行”,实际含义是“若循环未触发 break 自然结束则执行(No Break)”。
五、基础语法核心规则速查清单
以下全景图概括了初学与日常开发中涉及变量、核心数据类型与控制流的最关键语法规则与代码编写准则:
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













