1. 集合与序列操作
- 列表推导式:创建列表。
[x**2 for x in range(10)]
- 字典推导式:创建字典。
{x: x**2 for x in range(10)}
- 集合推导式:创建集合。
{x**2 for x in range(10)}
- 条件列表推导:在列表推导中使用条件表达式。
[x for x in range(10) if x % 2 == 0]
- 条件字典推导:在字典推导中使用条件表达式。
{x: x**2 for x in range(10) if x % 2 != 0}
- 生成器表达式:创建迭代器。
(x**2 for x in range(10))
- 字符串字面量:单引号或双引号表示的字符串。
s = "This is a string in double quotes."
- 原始字符串:使用
r
前缀表示,忽略转义字符。raw_str = r"New line is represented as \n"
- 多行字符串:使用三个引号表示。
multi_line_str = """This is a multi-line
string with two lines."""
2. 赋值与解包
- 多重赋值:一次性赋值多个变量。
a, b = 1, 2
- 扩展的可迭代解包:函数调用中解包可迭代对象。
*a, b = [1, 2, 3, 4]
- 解包赋值:从序列中解包值赋给多个变量。
a, *b, c = [0, 1, 2, 3, 4]
3. 函数与Lambda
- 装饰器:修改函数或方法的行为。
@my_decorator
def say_hello():
print("Hello!")
- lambda 函数:创建匿名函数。
add = lambda x, y: x + y
- 关键字参数:使用
**kwargs
接受任意数量的关键字参数。def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
4. 控制流
- 条件表达式:一行 if-else 逻辑。
max_value = a if a > b else b
- 异常处理:使用 try…except 语句处理错误。
try:
x = int(input("Please enter a number: "))
except ValueError:
print("That's not a valid number!")
- 断言:调试目的的检查。
assert x == y, "x does not equal y"
5. 上下文管理
6. 类和对象
- 属性装饰器:创建管理对象属性的方法。
class MyClass:
@property
def value(self):
return self._value
@value.setter
def value(self, new_value):
self._value = new_value
- 命名元组:创建带有命名字段的元组子类。
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
7. 模块和包
8. 类型提示
9. 异步编程
- 异步函数:使用
async
和 await
编写异步代码。
import asyncio
async def fetch_data():
await asyncio.sleep(1)
return {"data": 1}
async def main():
data = await fetch_data()
print(data)
asyncio.run(main())
10. 其他
- 表达式末尾的逗号:在表达式末尾使用逗号,方便添加或删除元素。
my_list = [1, 2, 3, ]
- 星号参数和双星号参数:在函数定义中收集任意数量的参数。
def func(*args, **kwargs):
print(args, kwargs)
- 异常的
as
用法:捕获异常的实例。try:
1 / 0
except ZeroDivisionError as e:
print(f"Caught an exception: {e}")
- 海象运算符:在表达式中进行赋值(Python 3.8+)。
(element) = [1, 2, 3]
- 使用
__slots__
:限制实例属性,优化内存使用。class MyClass:
__slots__ = ('name', 'age')
11. 内建函数和操作
- 内建函数:如
len()
, range()
, min()
, max()
, sum()
等。len([1, 2, 3])
- 序列字面量:创建列表、元组、集合。
[1, 2, 3], (1, 2, 3), {1, 2, 3}
- 字典字面量:创建字典。
{'key': 'value'}
- 条件表达式:简化 if-else 语句。
'active' if is_active else 'inactive'
- 迭代器解包:在函数调用中解包迭代器。
[a, b] = iter_range
- 参数解包:在函数调用中解包序列或字典。
def func(a, b, c): pass
func(*args, **kwargs)
- 链式比较:简化多重比较。
a < b < c
- 内建序列方法:如
.append()
, .extend()
, .insert()
, .remove()
, .pop()
等。my_list.append('new item')
- 内建字典方法:如
.get()
, .keys()
, .values()
, .items()
等。my_dict.get('key')
- 内建集合操作:如
.union()
, .difference()
, .intersection()
, .symmetric_difference()
等。set_a.union(set_b)
- 内建迭代器:如
enumerate()
, zip()
, filter()
, map()
等。enumerate(['a', 'b', 'c'])
- 内建类型转换:如
int()
, float()
, str()
, bytes()
等。int('123')
- 内建逻辑操作:如
and
, or
, not
。x and y or z
- 内建身份操作:如
is
, is not
。x is not None
- 内建比较:比较运算符
==
, !=
, >
, <
, >=
, <=
。x > y
- 内建数学运算:如
+
, -
, *
, /
, //
, **
。x + y
12. 特殊方法
13. 元类和类创建
14. 模块属性和包
- 模块属性:如
__all__
定义可导入的模块成员。__all__ = ['func1', 'func2']
- 命名空间包:使用
__path__
属性。__import__('pkgutil').extend_path(__path__, __name__)
15. 协程与异步IO
16. 格式化字符串字面量
17. 文件操作
18. 警告与反射
19. 垃圾回收与循环引用
20. 内建数据类型操作
21. 内建迭代与循环控制
22. 内建比较与逻辑运算
- 比较运算符:
==
, !=
, >
, <
, >=
, <=
。x == y
- 逻辑运算符:
and
, or
, not
。x and y or z
23. 内建身份与成员运算
- 身份运算符:
is
, is not
。x is y
- 成员运算符:
in
, not in
。'a' in ['a', 'b', 'c']