Python 语法精炼20
类型注解(Type Hint) 基本概念 类型注解是一种 静态类型提示机制,用于在代码中标注变量、函数参数、返回值等的预期类型。 它不会改变 Python 的运行逻辑,只是为静态分析工具(如 mypy、pyright、pylance)提供类型信息。 📘 举例: 12def add(x: int, y: int) -> int: return x + y 运行时效果完全一样,但编辑器 / 检查工具能检测类型错误: 1add(1, "2") # 类型检查器会提示错误 语法结构 用途 语法 示例 变量注解 变量名: 类型 count: int = 0 函数参数 def func(x: 类型): def greet(name: str): 返回值 -> 类型 def f() -> float: 类属性 在类体内注解 name: str 类型别名 类型名 = 类型 Vector = list[float] 常用类型注解 类型 示例 说明 基本类型 int, float, bool, str 基...
Python 语法精炼19
异常 异常(Exception)是程序运行时出现的错误事件,它会中断正常执行流程,并转入异常处理机制。 例如: 1print(10 / 0) # ZeroDivisionError 输出: 1ZeroDivisionError: division by zero 程序遇到错误时,Python 会自动创建一个异常对象并抛出(raise),如果没有被捕获(handled),程序就会终止。 基本结构 Python 的异常处理使用 try、except、else、finally 四个关键字。 12345678try: # 可能出错的代码except SomeError: # 捕获异常else: # 没出错时执行finally: # 无论是否出错都会执行 📘 示例: 1234567891011try: x = int(input("请输入数字:")) result = 10 / xexcept ValueError: print("输入不是数字!")except ZeroDivisionError: ...
Python 语法精炼18
继承 在 Python 中,类可以从一个或多个父类继承: 12345class Parent: passclass Child(Parent): pass 当一个类从多个父类继承时,这就是多重继承。 123class A: passclass B: passclass C(A, B): pass C 同时继承了 A 和 B。 MRO MRO(方法解析顺序): 是指 Python 在多重继承中搜索属性和方法的顺序。 当你访问 obj.method() 时,Python 会按一定的顺序在类的继承链上查找 method,这个顺序由 MRO 列表 决定。 查看 MRO 两种常用方法: 12C.__mro__ # 返回一个元组C.mro() # 返回一个列表 示例: 123456class A: passclass B: passclass C(A, B): passprint(C.__mro__)# (<class '__main__.C'>, <class '__main__.A'>, <cl...
Python 语法精炼17
切片 切片(Slicing) 是对序列类型(如 list、str、tuple 等)进行区间访问的一种方式。 它允许你通过索引区间提取部分元素,而不修改原序列。 基本语法: 1seq[start:end:step] 参数 含义 默认值 start 起始索引(包含) 0 end 结束索引(不包含) 序列长度 step 步长 1 基础操作 123456nums = [0, 1, 2, 3, 4, 5]print(nums[1:4]) # [1, 2, 3] 取索引 1~3 的元素print(nums[:3]) # [0, 1, 2] 省略 start,默认为0print(nums[3:]) # [3, 4, 5] 省略 end,取到结尾print(nums[:]) # [0, 1, 2, 3, 4, 5] 复制整个列表 负索引 在 Python 中,索引可以为负数,表示从序列末尾开始计数。 索引 含义 -1 最后一个元素 -2 倒数第二个元素 -3 倒数第三个元素 📘 示例: ...
Python 语法精炼16
断言 断言(assertion) 是一种 自我检查机制,用于判断程序运行时某个条件是否为真。 当条件为假时,程序会抛出异常(AssertionError)并终止执行,以提示你“程序状态不符合预期”。 简单说: “我确信这里必须是 True,否则说明有 bug。” 语法结构 1assert 条件, 错误提示(可选) 📘 举例: 123x = 10assert x > 0, "x 必须是正数"print("继续执行...") ✅ 输出: 1继续执行... ❌ 若条件不成立: 12x = -5assert x > 0, "x 必须是正数" 报错: 1AssertionError: x 必须是正数 执行原理 assert 的本质相当于: 12if not 条件: raise AssertionError(错误提示) 也就是说,断言会在条件为 False 时自动抛出异常。 例如: 12345# 以下两者等价assert x > 0, "x 必须大于 0"if not x > ...
Python 语法精炼15
lambda 表达式 Lambda 表达式(Lambda expression) 也称为 匿名函数(Anonymous function),就是没有名字的临时函数。它用于简化代码,尤其是在需要将函数作为参数的场景中(比如 map()、filter()、sorted() 等)。 在 Python 中,它是通过关键字 lambda 定义的。 语法结构 1lambda 参数列表: 表达式 lambda:关键字,表示匿名函数; 参数列表:和普通函数的参数类似,可以有多个参数; 表达式`:必须是一个单一表达式,不能写多行语句; 返回值:表达式的计算结果会自动作为返回值。 举例: 12345678# 普通函数def add(x, y): return x + y# 等价的 lambda 写法add_lambda = lambda x, y: x + yprint(add_lambda(3, 5)) # 输出 8 核心特征 特征 描述 匿名性 没有函数名,用完即丢 简洁性 一行定义一个函数 函数式编程风格 常与高阶函数(map、filter、reduce、so...
Python 语法精炼14
match / case 语句 该用法在 Python3.10+ 加入 1234567match <subject>: case <pattern1>: <statements1> case <pattern2>: <statements2> case _: <default_statements> match:开始匹配语句。 <subject>:要进行匹配的值(类似 switch 的“输入值”)。 case:每个分支的匹配模式。 _:通配符,表示 “任意匹配”(类似 default)。 匹配成功后只执行第一个符合的 case,不会自动贯穿(即不需要 break)。 基本概念 传统 if-elif 判断是布尔逻辑,而 match/case 是 结构解构 + 匹配。 例如: 1234567match x: case 0: print("zero") case 1: print(...
Python 语法精炼13
else 语法结构 Python 的循环结构(for 或 while)都可以带一个可选的 else 子句: 123456for item in iterable: # 循环体 ...else: # 仅当循环“正常结束”时执行 ... 123456while condition: # 循环体 ...else: # 仅当循环“正常结束”时执行 ... else 执行逻辑 情况 是否执行 else 循环 正常执行完毕 ✅ 执行 循环 被 break 提前终止 ❌ 不执行 循环体 从未执行过 ✅ 执行 循环中遇到 continue ✅ 不影响 else 的执行 for...else 示例 示例 1:无 break,循环正常结束 1234for i in range(3): print(i)else: print("循环正常结束") 输出: 1234012循环正常结束 ✅ 因为循环没有被中断,else 执行。 示例 2:循环被 break 中断 123456for i in ra...
Python 语法精炼12
属性的基本概念 类属性(Class Attribute) 定义:直接定义在类体中的属性,所有实例共享。 特点: 存储在类对象的 __dict__ 中。 实例可访问,但若同名实例属性存在,则实例属性优先。 示例: 123456class C: kind = "human" # 类属性a = C(); b = C()a.kind = "robot" # 给实例加了新的属性,不影响类属性print(b.kind) # "human" 实例属性(Instance Attribute) 定义:定义在方法(通常是 __init__)内部,绑定到具体实例。 示例: 123class C: def __init__(self, name): self.name = name # 实例属性 属性的可见性与命名约定 公有属性(public) 无前缀,例如 name,可以被外部直接访问。 受保护属性(protected) 以下划线 _ 开头,如 _cache ...
Python 语法精炼11
装饰器 装饰器的本质是一个函数,它接收另一个函数作为参数(被装饰函数),返回一个新的函数对象。 简单说: “装饰器 = 一个接收函数并返回函数的函数。” 例子: 123456789101112def decorator(func): def wrapper(): print("函数开始执行") func() print("函数执行结束") return wrapper@decoratordef say_hello(): print("Hello!")say_hello() 输出: 123函数开始执行Hello!函数执行结束 等价于: 12say_hello = decorator(say_hello)say_hello() @decorator 只是语法糖。 装饰器的返回值会替换原函数。 本质是:func = decorator(func)。 工作机制 123@装饰器名def 函数名(...): ... 等价于: 1函数名 = 装饰器名(函数名) ...




