目录
1. 列表推导式(List Comprehensions)
2. 字典推导式(Dictionary Comprehensions)
3. 集合推导式(Set Comprehensions)
4. 生成器表达式(Generator Expressions)
5. 多重赋值与解包(Multiple Assignment and Unpacking)
6. 链式比较(Chained Comparisons)
7. else子句在循环和异常处理中的使用
8. with语句(Context Managers)
9. 函数参数解包(Function Argument Unpacking)
10. Lambda函数(Lambda Functions)
11. 切片(Slicing)
12. 装饰器(Decorators)
13. 赋值表达式(Walrus Operator)[Python 3.8+]
Python是一种广受欢迎的高级编程语言,它以其简洁明了的语法和强大的功能而闻名。在这篇博客中,我们将探索Python中一些比较特殊且有用的语法特性,这些特性不仅使得Python与众不同,还大大提高了代码的可读性和编写效率。
用于创建列表的简洁语法,非常适合从其他列表或可迭代对象生成新列表。
squares = [x**2 for x in range(10)]
类似列表推导式,用于创建字典。
squared_dict = {x: x**2 for x in range(10)}
用于创建集合的语法。
squared_set = {x**2 for x in [1, 1, 2]}
类似于列表推导式,但它不会一次性创建整个列表,而是返回一个生成器对象。
squares_gen = (x**2 for x in range(10))
同时为多个变量赋值或从序列中提取值。
a, b, c = 1, 2, 3 x, *y, z = [1, 2, 3, 4, 5] # x=1, y=[2, 3, 4], z=5
同时进行多个比较。
1 < x < 10
在for
和while
循环后以及try-except
块后使用else
子句。
for item in container:
if search(item):
break
else: # 如果没有break发生 not_found()
try:
dangerous_call()
except Exception:
handle_exception()
else: # 如果没有异常发生
no_exception()
自动管理资源,如文件操作。
with open('file.txt', 'r') as file:
contents = file.read()
使用*
和**
操作符传递可迭代对象和字典作为函数参数。
def func(a, b, c):
print(a, b, c)
args = [1, 2, 3]
func(*args)
kwargs = {'a': 1, 'b': 2, 'c': 3}
func(**kwargs)
创建匿名函数。
add = lambda x, y: x + y
从序列类型(如列表、字符串)中获取子序列。
numbers = [1, 2, 3, 4, 5] first_three = numbers[:3] # [1, 2, 3]
修改或增强函数和方法的行为。
@decorator
def func():
pass
使用 :=
运算符在表达式内部进行赋值。注意:这里需要python版本3.8+哦!!
if (n := len(a)) > 10:
print(f"List is too long ({n} elements)")
这些特殊的语法使得Python代码更加简洁、易于阅读和编写。熟练掌握这些语法可以显著提高编程效率。