python常用语法特性
本文最后更新于45 天前,在知识的增长过程中难免会有错误的理解,如有您发现有错误或者有不同的见解请发送邮件到thelistenerofrain@163.com或者留言~

1. 列表推导式(List Comprehension)

用一行代码创建新列表。

Python编辑squares = [x**2 for x in range(5)]        # [0, 1, 4, 9, 16]
evens = [x for x in range(10) if x % 2 == 0]  # [0, 2, 4, 6, 8]

类似还有:字典推导式 {k: v for k, v in ...}集合推导式 {x for x in ...}


2. 解包(Unpacking)

基础解包:

Python编辑a, b, c = [1, 2, 3]      # a=1, b=2, c=3

星号解包(收集多余元素):

Python编辑first, *middle, last = [1, 2, 3, 4, 5]
# first=1, middle=[2,3,4], last=5

函数调用解包:

Python编辑print(*[1, 2, 3])  # 等价于 print(1, 2, 3)

3. f-string(格式化字符串字面值) —— Python 3.6+

最推荐的字符串格式化方式!

Python编辑name = "Alice"
age = 25
print(f"Hello, {name}! You are {age} years old.")
# 支持表达式:
print(f"Next year you'll be {age + 1}.")

%.format() 更快、更清晰!


4. 三元运算符(条件表达式)

一行实现 if-else 赋值:

Python编辑status = "adult" if age >= 18 else "minor"

5. enumerate() 和 zip()

enumerate():同时获取索引和值

Python编辑for i, value in enumerate(['a', 'b', 'c']):
    print(i, value)
# 输出: 0 a, 1 b, 2 c

zip():并行遍历多个序列

Python编辑names = ['Alice', 'Bob']
ages = [25, 30]
for name, age in zip(names, ages):
    print(f"{name} is {age}")

6. 切片(Slicing)

强大而简洁的序列截取:

Python编辑lst = [0, 1, 2, 3, 4]
lst[1:4]    # [1, 2, 3]
lst[::-1]   # [4, 3, 2, 1, 0] (反转)
lst[::2]    # [0, 2, 4] (步长为2)

适用于 list, tuple, str 等。


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

自动管理资源(如文件、锁等),避免忘记关闭。

Python编辑with open('file.txt') as f:
    data = f.read()
# 文件自动关闭,即使出错也会安全释放

你也可以自定义上下文管理器(用 __enter__ / __exit__contextlib)。


8. 生成器(Generator)与 yield

节省内存地处理大数据:

Python编辑def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1

for num in count_up_to(3):
    print(num)  # 1, 2, 3

比返回完整列表更省内存!


9. 装饰器(Decorator)

在不修改函数代码的前提下增强功能。

Python编辑def log(func):
    def wrapper(*args, **kwargs):
        print(f"Calling {func.__name__}")
        return func(*args, **kwargs)
    return wrapper

@log
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # 先打印日志,再执行

10. 海象运算符(Walrus Operator) —— Python 3.8+

在表达式中赋值(避免重复计算):

Python编辑# 以前:
data = input("Enter something: ")
if len(data) > 5:
    print("Too long!")

# 现在(一行搞定):
if (n := len(input("Enter something: "))) > 5:
    print(f"Too long! Length = {n}")

符号::=


11. 多重赋值 & 交换变量

Python编辑a, b = 1, 2
a, b = b, a   # 交换!无需临时变量

12. 链式比较

Python编辑x = 5
if 0 < x < 10:
    print("x is between 0 and 10")

等价于 0 < x and x < 10,但更自然。


13. 默认字典(defaultdict)和计数器(Counter)

来自 collections 模块,超实用!

Python编辑from collections import defaultdict, Counter

# 自动初始化不存在的键
d = defaultdict(int)
d['a'] += 1  # 不会报错

# 快速统计元素出现次数
c = Counter(['apple', 'banana', 'apple'])
# Counter({'apple': 2, 'banana': 1})

总结:Python 的核心语法哲学

“Beautiful is better than ugly.”
“Simple is better than complex.”
—— 《The Zen of Python》(import this

这些语法特性都体现了 Python 追求 可读性、简洁性和表达力 的设计思想。

感谢您的阅读,如有错误,欢迎留言
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇