Python 语法速查

1 minBeginner

常用 Python 语法速查表,含使用场景、常见错误,支持搜索和复制

学习指引

前置知识

  • 了解编程的基本概念
  • 已完成 Python 3.x 安装

推荐学习顺序

  1. 先学习【基础语法】分组,掌握变量、条件和循环
  2. 再学习【数据结构】分组,掌握列表、字典等核心数据类型

基础语法

Python 编程的起点。本组内容涵盖变量定义、条件判断、循环和函数,是编写任何 Python 程序的基础。

变量与类型

name = "张三"
age = 25
height = 1.75
is_student = True
print(type(name))  # <class 'str'>
输出: <class 'str'>
场景: 定义变量存储数据。Python 是动态类型语言,变量无需声明类型,赋值即定义。type() 函数可查看变量类型。

常见错误

  • 错误: name = 张三 -- 解决: 字符串必须用引号包裹:name = "张三"
  • 错误: 10 = age -- 解决: 变量名必须在等号左侧:age = 10
进阶: Python 支持类型注解:name: str = "张三",便于 IDE 提示和代码可读性,但不影响运行时行为。

条件判断

score = 85
if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")
输出: 及格
场景: 根据条件执行不同的代码逻辑。if-elif-else 结构支持多条件分支判断,条件表达式不需要括号。

常见错误

  • 错误: if score = 85: -- 解决: 比较使用 ==,赋值使用 =。条件判断中应使用 score == 85
  • 错误: if score >= 60 print("及格") -- 解决: if 语句末尾必须加冒号 :
进阶: Python 支持三元表达式:result = "及格" if score >= 60 else "不及格",适合简单的条件赋值。

循环

# for 循环
for i in range(5):
    print(i)

# while 循环
count = 0
while count < 3:
    print(f"count = {count}")
    count += 1
输出: 0 1 2 3 4 count = 0 count = 1 count = 2
场景: for 循环用于遍历序列或指定次数的迭代,while 循环用于条件满足时持续执行。break 可提前退出循环,continue 可跳过当前迭代。

常见错误

  • 错误: for i in range(5) print(i) -- 解决: for 语句末尾必须加冒号,循环体需要缩进
  • 错误: while True: pass(缺少退出条件) -- 解决: while 循环必须包含使条件为 False 的逻辑或 break 语句
进阶: for-else 语法:当循环正常结束(未被 break 中断)时执行 else 块,常用于搜索场景。

函数定义

def greet(name: str, greeting: str = "你好") -> str:
    return f"{greeting}, {name}!"

result = greet("张三")
print(result)
输出: 你好, 张三!
场景: 将可复用的代码封装为函数。def 关键字定义函数,支持默认参数、关键字参数和返回值。函数是代码组织和复用的基本单元。

常见错误

  • 错误: def greet(name, greeting="你好", title): -- 解决: 默认参数必须放在非默认参数之后:def greet(name, title, greeting="你好")
  • 错误: def add(a, b): a + b(缺少 return) -- 解决: 需要返回值时必须使用 return 语句:return a + b
进阶: 使用 *args 和 **kwargs 可定义可变参数函数。*args 接收任意数量的位置参数,**kwargs 接收任意数量的关键字参数。

数据结构

Python 内置的核心数据结构。本组内容涵盖列表、字典、集合和元组,是处理和组织数据的基础工具。

列表

fruits = ["苹果", "香蕉", "橙子"]
fruits.append("葡萄")
fruits.remove("香蕉")
print(fruits[0])  # 苹果
print(len(fruits))  # 3
输出: 苹果 3
场景: 列表是有序的可变序列,用于存储一组相关数据。支持索引访问、切片、添加、删除和排序等操作,是最常用的数据结构。

常见错误

  • 错误: fruits[3](索引超出范围) -- 解决: 列表索引从 0 开始,最大索引为 len(list)-1,访问前检查长度
  • 错误: fruits.remove("西瓜")(元素不存在) -- 解决: 删除前先判断:if "西瓜" in fruits: fruits.remove("西瓜")
进阶: 列表推导式可简洁地创建列表:[x**2 for x in range(10) if x % 2 == 0],比循环更高效且更 Pythonic。

字典

user = {"name": "张三", "age": 25}
user["email"] = "zhangsan@mail.com"
age = user.get("age", 0)
print(user.keys())
print(user.values())
输出: dict_keys(['name', 'age', 'email']) dict_values(['张三', 25, 'zhangsan@mail.com'])
场景: 字典是键值对的无序可变集合,用于通过键快速查找值。查找时间复杂度为 O(1),适合存储和检索结构化数据。

常见错误

  • 错误: user["phone"](键不存在) -- 解决: 使用 get 方法设置默认值:user.get("phone", "未设置")
  • 错误: for key, value in user:(直接遍历字典) -- 解决: 使用 user.items() 遍历键值对:for key, value in user.items()
进阶: 字典推导式:{k: v for k, v in items if v > 0}。Python 3.7+ 字典保持插入顺序。setdefault() 可在键不存在时设置默认值。

集合

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a & b)  # 交集
print(a | b)  # 并集
print(a - b)  # 差集
输出: {3, 4} {1, 2, 3, 4, 5, 6} {1, 2}
场景: 集合是无序且不重复的元素集合,适合去重和集合运算(交集、并集、差集)。元素必须是可哈希类型。

常见错误

  • 错误: s = {}(试图创建空集合) -- 解决: 空集合必须使用 set():s = set(),{} 创建的是空字典
  • 错误: s = {[1, 2], [3, 4]}(列表作为集合元素) -- 解决: 集合元素必须是不可变类型,可将列表转为元组:{(1, 2), (3, 4)}
进阶: 集合的 in 操作时间复杂度为 O(1),远快于列表的 O(n),适合用于成员检测和去重场景。

元组

point = (3, 4)
x, y = point  # 解包
print(f"x={x}, y={y}")

# 单元素元组必须加逗号
single = (42,)
输出: x=3, y=4
场景: 元组是不可变的有序序列,一旦创建不可修改。适合存储不应被改变的数据,如坐标、配置项等。也常用于函数返回多个值。

常见错误

  • 错误: point[0] = 5(尝试修改元组元素) -- 解决: 元组不可修改,如需修改应使用列表,或重新创建元组
  • 错误: single = (42)(试图创建单元素元组) -- 解决: 单元素元组必须加逗号:single = (42,)
进阶: 元组可作为字典的键(因为不可变且可哈希),而列表不行。命名元组 namedtuple 可通过名称访问元素,比索引更清晰。