Python 语法糖

一、基础语法糖

1. 列表/字典/集合推导式

  • 作用:快速生成列表、字典或集合。
  • 示例:
# 列表推导式
squares = [x**2 for x in range(5)]  # [0, 1, 4, 9, 16]

# 字典推导式
d = {k: k*2 for k in ["a", "b"]}    # {'a': 'aa', 'b': 'bb'}

# 集合推导式
s = {x % 3 for x in [1, 2, 3, 4]}   # {0, 1, 2}

2. 三元条件表达式

  • 简化单行条件判断:
value = "Yes" if condition else "No"

3. 链式比较

  • 简化连续比较:
if 1 <= x < 10:
    print("x 在 1~10 之间")

二、进阶语法糖

1. 装饰器(Decorators)

  • 作用:用 @decorator 语法扩展函数行为。
  • 示例:
def log(func):
    def wrapper(*args, **kwargs):
        print(f"调用函数:{func.__name__}")
        return func(*args, **kwargs)
    return wrapper

@log
def say_hello():
    print("Hello!")

say_hello()  # 输出:调用函数:say_hello → Hello!

2. 上下文管理器(with 语句)

  • 作用:简化资源管理(如文件、锁)。
  • 示例:
with open("data.txt", "r") as f:
    content = f.read()  # 自动处理文件关闭

3. 解包操作(Unpacking)

  • 解包序列和字典:
a, *rest = [1, 2, 3, 4]    # a=1, rest=[2,3,4]
d1 = {"a": 1, "b": 2}
d2 = {**d1, "c": 3}        # 合并字典 → {'a':1, 'b':2, 'c':3}

4. 海象运算符(Walrus Operator :=

  • Python 3.8+:在表达式中赋值。
  • 示例:
if (n := len(data)) > 100:
    print(f"数据量过大:{n} 条")

三、函数式语法糖

1. lambda 表达式

  • 匿名函数:快速定义简单函数。
add = lambda a, b: a + b
print(add(2, 3))  # 5

2. 高阶函数(map/filter/reduce

  • 示例:
# map 转换元素
nums = list(map(lambda x: x*2, [1, 2, 3]))  # [2, 4, 6]

# filter 过滤元素
evens = list(filter(lambda x: x%2 == 0, [1,2,3,4]))  # [2,4]

四、特殊语法糖

1. f-strings 字符串格式化

  • 直接嵌入表达式:
name = "Alice"
print(f"Hello, {name.upper()}!")  # Hello, ALICE!

2. else 子句在循环中的用法

  • 循环未被 break 中断时触发:
for n in [2, 4, 6]:
    if n % 2 != 0:
        print("发现奇数")
        break
else:
    print("全是偶数")

进阶高级测试工程师 文章被收录于专栏

《高级软件测试工程师》专栏旨在为测试领域的从业者提供深入的知识和实践指导,帮助大家从基础的测试技能迈向高级测试专家的行列。 在本专栏中,主要涵盖的内容: 1. 如何设计和实施高效的测试策略; 2. 掌握自动化测试、性能测试和安全测试的核心技术; 3. 深入理解测试驱动开发(TDD)和行为驱动开发(BDD)的实践方法; 4. 测试团队的管理和协作能力。 ——For.Heart

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务