Skip to main content

常见编程错误的正确实现 (Part 2)

本文件提供了 common_mistakes_part2.py 中常见错误的正确实现。

示例 1: 循环中正确的字符串拼接

不再使用 '+=' 在循环中进行字符串拼接,这种方法由于字符串的不可变性而效率低下。代码现在使用 "".join(str(i) for i in range(1000)) 进行高效的字符串拼接。

示例 2: 使用 'isinstance' 进行类型检查

不再使用 type(data) == str 进行类型检查,这种方法不考虑继承关系。代码现在使用 isinstance(data, str) 进行更健壮的类型检查。

示例 3: 避免变量遮蔽

代码现在避免了遮蔽内置的 sum 函数,而是使用变量名 total

示例 4: 正确使用列表推导式

不再滥用列表推导式来产生副作用,代码现在使用标准的 for 循环来打印数字。

示例 5: 在深拷贝中复制嵌套结构

代码现在使用 copy.deepcopy 来执行嵌套列表的深拷贝,确保对拷贝列表的更改不会影响原始列表。

代码示例

# Corrected Implementations for Common Mistakes Part 2

# Example 1: Correct string concatenation in loops
result = "".join(str(i) for i in range(1000))
print(result[:10] + "...")

# Example 2: Using 'isinstance' for type checking
data = "123"
if isinstance(data, str):
print("data is a string")
else:
print("data is not a string")

# Example 3: Avoiding variable shadowing
total = 0
numbers = [1, 2, 3, 4, 5]
for num in numbers:
total += num
print(sum(numbers))

# Example 4: Using list comprehension correctly
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num)

# Example 5: Copying nested structures in deep copies
import copy
original = [[1, 2, 3], [4, 5, 6]]
deep_copy = copy.deepcopy(original)
deep_copy[0][0] = 99
print(original)