你应该知道这些 Python 技巧

360影视 2025-01-16 09:18 2

摘要:Python 因其简单和优雅而受到喜爱,但掌握它不仅仅是编写基本脚本。真正的 Python 专家会利用该语言的强大功能来编写不仅实用而且高效且可读的代码。

Python 因其简单和优雅而受到喜爱,但掌握它不仅仅是编写基本脚本。真正的 Python 专家会利用该语言的强大功能来编写不仅实用而且高效且可读的代码。

如果您希望提升您的 Python 之旅,这些技巧将带您从一名称职的编码员成为一名 Python 强者。

列表推导式是 Pythonic 代码的标志。它们可以让您以单一、优雅的方式从现有列表中生成新列表,通常会取代更长、更笨重的循环。

例子:

假设您有一个数字列表,并且您想要创建一个仅包含偶数平方的新列表。

没有列表理解:

numbers = [1, 2, 3, 4, 5, 6]squares = for num in numbers: if num % 2 == 0: squares.append(num ** 2)print(squares)# Output: [4, 16, 36]

使用列表理解:

numbers = [1, 2, 3, 4, 5, 6]squares = [num ** 2 for num in numbers if num % 2 == 0]print(squares)# Output: [4, 16, 36]

为什么它是专业级的:

它简洁易读。对于中小型列表来说速度更快。

额外提示:列表推导式也适用于嵌套列表,使它们成为展平或操作复杂数据结构的理想选择。

错误处理是编写健壮代码的关键部分。当出现问题时, try-except块不会让您的程序崩溃,而是可以让您优雅地处理异常。

例子:
假设您正在对数字进行除法,但您不希望如果有人除以零,您的程序就会中断。

没有尝试除外(未捕获的错误):

num = 10denominator = 0result = num / denominator # zeroDivisionError

尝试除外:

try: num = 10 denominator = 0 result = num / denominatorexcept ZeroDivisionError: print("You can't divide by zero!") result = Noneprint(result)# Output: You can't divide by zero!# None

为什么它是专业级的:

即使出现错误,也能让您的程序顺利运行。允许自定义错误处理,使您的代码用户友好。

F 字符串( formatted string literals )是 Python 中最快、最易读的字符串格式化方式,在 Python 3.6 中引入。

例子:

name = "Alice"age = 25# Traditional formattingprint("My name is {} and I am {} years old.".format(name, age))# F-String formattingprint(f"My name is {name} and I am {age} years old.")# Output: My name is Alice and I am 25 years old.

为什么它是专业级的:

它很直观 - 将表达式直接嵌入大括号{}中。它支持内联计算。

*和**运算符允许您解压迭代和字典,使您的代码更加动态和可重用。

示例(函数参数):

def add(a, b, c): return a + b + cnums = [1, 2, 3]print(add(*nums)) # Output: 6

示例(字典解包):

def greet(name, age): print(f"Hello, {name}! You are {age} years old.")person = {"name": "Bob", "age": 30}greet(**person)# Output: Hello, Bob! You are 30 years old.

为什么它是专业级的:

减少样板代码。实现灵活的函数调用。

当循环列表并需要索引和值时,许多初学者依赖范围和索引。专业人士使用enumerate代替。

不枚举:

names = ["Alice", "Bob", "Charlie"]for i in range(len(names)): print(f"{i}: {names[i]}")

与枚举:

names = ["Alice", "Bob", "Charlie"]for i, name in enumerate(names): print(f"{i}: {name}")

来源:自由坦荡的湖泊AI

相关推荐