Python3的语法体系并不复杂,但内置类型和函数数量较多,实际编码时往往需要反复查阅文档。与其每次都打开浏览器搜索,不如准备一份覆盖高频用法的速查表。本文将语法规则、数据结构操作、函数定义要点和常见错误汇总在一起,每个知识点都配有可以立即运行的代码片段,方便你在写代码时快速对照。

基础语法与运算符速查
Python3的变量不需要提前声明类型,直接赋值即可创建变量,解释器会根据值自动推断类型。常见的内置类型包括整数int、浮点数float、字符串str、布尔值bool和空值None。布尔值只有True和False两个取值,注意首字母必须大写。字符串可以用单引号或双引号包裹,三引号可用于多行文本。Python3中整数没有大小限制,浮点数遵循IEEE 754标准。
运算符方面,除了加减乘除,还要特别注意除法运算。单斜杠/执行普通除法,结果始终为浮点数;双斜杠//执行向下取整除法,结果类型与操作数有关;百分号%用于取模;两个星号**表示幂运算。比较运算符包括==、!=、>、<、>=、<=,逻辑运算符使用and、or、not关键字而不是符号。成员运算符in和not in用于检查元素是否在序列中,身份运算符is和is not用于判断两个对象是否为同一引用。
# 基础语法示例
x = 10
y = 3.14
name = "Python3"
flag = True
nothing = None
# 算术运算
print(7 / 2) # 输出 3.5
print(7 // 2) # 输出 3
print(2 ** 3) # 输出 8
# 比较与逻辑运算
if x > 5 and x < 20:
print("x在范围内")
# 成员与身份
nums = [1, 2, 3]
print(2 in nums) # True
print(nums is not None) # True
控制流部分,if语句可以配合elif和else处理多分支。for循环通常直接遍历列表、元组、字典、字符串等可迭代对象,也可以使用range生成整数序列。while循环在条件为真时持续执行,必须确保循环条件最终会变为假,否则会陷入死循环。break用于提前结束当前循环,continue跳过本次循环剩余代码进入下一轮,pass是空语句占位符,用于语法上需要语句但逻辑上暂无操作的位置。
常用数据结构与核心操作
列表是最常用的序列类型,支持索引、切片和多种修改方法。索引从0开始,负数索引从尾部倒数。切片语法为[start:stop:step],stop位置不包含在内,省略start表示从头开始,省略stop表示到末尾。列表可以原地修改,常用方法包括append追加单个元素、extend合并另一个可迭代对象、insert在指定位置插入、remove按值删除、pop按索引删除并返回被删除值,以及sort排序和reverse反转。列表推导式可以在一行内生成新列表,写法为[表达式 for 变量 in 可迭代对象 if 条件]。
# 列表操作
fruits = ["apple", "banana", "cherry"]
fruits.append("date")
fruits.insert(1, "blueberry")
print(fruits[1:3]) # ['blueberry', 'banana']
removed = fruits.pop(0)
print(removed) # apple
# 列表推导式
squares = [n * n for n in range(1, 6) if n % 2 == 0]
print(squares) # [4, 16]
元组与列表类似,但一旦创建就不能修改,适合保存不希望被改动的数据。元组使用圆括号定义,单个元素的元组必须在元素后加逗号,例如(3,)才是元组,而(3)只是整数3。元组支持索引、切片、解包和遍历,但不存在append、remove等原地修改方法。字典是键值对结构,键必须是不可变类型,如字符串、数字或元组,值可以是任意对象。常用操作包括通过键访问值、使用get方法提供默认值、keys/values/items获取视图对象、update批量更新,以及字典推导式快速构建映射。集合是无序且元素唯一的数据结构,适合去重和数学集合运算。
# 元组、字典与集合
point = (3, 5)
x, y = point # 解包
person = {"name": "Alice", "age": 30}
print(person.get("city", "未知")) # 未知
person["city"] = "Beijing"
# 字典推导式
square_map = {n: n ** 2 for n in range(4)}
print(square_map) # {0: 0, 1: 1, 2: 4, 3: 9}
# 集合去重与运算
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a - b) # 差集 {1, 2}
print(a & b) # 交集 {3, 4}
print(a | b) # 并集 {1, 2, 3, 4, 5, 6}
字符串在Python3中是不可变序列,所有修改操作都会返回新字符串。常用方法有split按分隔符切分、join用指定字符连接序列、strip去除首尾空白、replace替换子串、find查找子串位置、startswith和endswith判断前后缀,以及upper、lower改变大小写。格式化输出推荐使用f-string,从Python3.6开始支持,在字符串前加f,花括号内直接写变量或表达式,可读性远高于百分号或format方法。
函数与参数传递要点
函数使用def关键字定义,return语句返回结果,如果省略return则返回None。调用函数时可以按位置传参,也可以使用参数名以关键字方式传参,关键字参数必须在位置参数之后。定义函数时可以为参数设置默认值,但默认参数有一个重要陷阱:默认值只在函数定义时计算一次,如果默认值是可变量对象,如列表或字典,后续调用可能会保留之前的修改。因此默认参数应尽量使用None,然后在函数体内创建新的可变对象。
# 函数定义与调用
def greet(name, greeting="Hello"):
return f"{greeting}, {name}"
print(greet("Alice"))
print(greet("Bob", greeting="Hi"))
# 可变参数
def total(*args, **kwargs):
print(args) # 位置参数元组
print(kwargs) # 关键字参数字典
return sum(args)
print(total(1, 2, 3, name="test"))
参数顺序应遵循:位置参数、*args、带有默认值的关键字参数、**kwargs。这样可以保证调用时不会产生歧义。lambda表达式用于创建匿名函数,适用于短小的回调或排序键,但可读性较差,复杂逻辑仍建议使用def。作用域方面,Python遵循LEGB规则,即局部作用域、闭包作用域、全局作用域和内置作用域。函数内部默认可以读取全局变量,但如果要修改全局变量,需要使用global声明;在嵌套函数中修改外层变量需要nonlocal声明。不正确地修改全局变量或可变对象容易导致难以排查的bug。
# 默认参数陷阱与作用域
def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [2],不会累积
count = 0
def increment():
global count
count += 1
increment()
print(count) # 1
常见问题与调试注意事项
缩进是Python语法的一部分,混用Tab和空格会导致IndentationError或难以发现的逻辑错误。建议统一使用4个空格,并在编辑器中开启显示空白字符。类型相关错误也很常见,例如对None调用方法会抛出AttributeError,对字符串和整数直接相加会抛出TypeError。调试时优先使用print打印关键变量,也可以配合assert语句在开发阶段做条件检查。Python的异常处理使用try、except、else和finally结构,except可以捕获指定异常类型,避免直接吞掉所有异常。
# 异常处理与断言
def safe_divide(a, b):
try:
result = a / b
except ZeroDivisionError:
return "除数不能为零"
else:
return result
finally:
print("执行完毕")
print(safe_divide(10, 2))
print(safe_divide(10, 0))
# 调试断言
age = -5
assert age >= 0, "年龄不能为负数"
深浅拷贝是另一个需要区分的概念。对列表等可变对象使用赋值操作只是复制引用,修改新变量会影响原对象;切片[:]或copy方法产生浅拷贝,外层对象独立但内部嵌套对象仍共享;copy.deepcopy可以递归复制所有层级。另一个常见问题是循环中修改列表,直接在遍历时删除元素可能跳项,正确做法是使用列表推导式生成新列表,或遍历副本。此外,Python2到Python3有若干不兼容变化,例如print从语句变为函数、整数除法默认浮点化、range返回可迭代对象而非列表,迁移旧代码时需要注意。
import copy original = [[1, 2], [3, 4]] shallow = original[:] # 浅拷贝 deep = copy.deepcopy(original) # 深拷贝 original[0][0] = 99 print(shallow[0][0]) # 99,受到影响 print(deep[0][0]) # 1,不受影响 # 循环中安全删除元素 numbers = [1, 2, 3, 4, 5, 6] even = [n for n in numbers if n % 2 == 0] print(even) # [2, 4, 6]
掌握这些速查要点之后,遇到陌生方法或语法错误时,可以优先查看本文对应小节,快速确认正确写法。Python3的内置函数和标准库非常丰富,速查表不可能覆盖所有内容,但基础语法与常用数据结构、函数规则是高频率使用部分,熟练之后能显著减少查阅时间。建议将代码片段复制到本地环境运行,观察输出结果,并结合自己的项目需求适当修改,这样才能真正把知识内化。
Python3速查表Python语法数据结构与函数修改时间:2026-10-05 23:46:22