常见的一些BUG,但实际上在编写代码时,我们应该尽可能避免这些类型的错误:
- 变量名与函数名冲突:
def main():  print("Hello, World!")
main = 5  
print("The value of main is:", main)  
- 函数参数传递错误:
def add(a, b):  return a + b
result = add(1, 2)  
print("1 + 2 =", result)  
- 运算符优先级错误:
age = 10
if age < 18:  print("未成年")  
elif age >= 18:  print("成年")  
else:  print("奇怪,你的年龄不在合理范围内")  
- 嵌套循环计算错误:
for i in range(10):  for j in range(10):  if i == j:  print(i)  
- 条件语句逻辑错误:
def is_positive(number):  if number > 0:  return "Yes"  elif number < 0:  return "No"  else:  return "Maybe"
result = is_positive(-5)  
print("-5 是正数吗?", result)  
- 函数返回值错误:
def get_square(a):  return a ** 2
result = get_square(5)  
print("5 的平方是:", result)  
- 变量作用域错误:
def outer_function():  global result  result = 10
def inner_function():  result = 5
inner_function()  
print("outer_function 中的 result:", result)  
- 循环未正确终止:
for i in range(10):  if i == 5:  break  print(i)  
- 函数递归调用导致无限循环:
def factorial(n):  if n == 0:  return 1  else:  return n * factorial(n-1)
n = 10  
result = factorial(n)  
print("10 的阶乘是:", result)  
- 类属性与实例属性混淆:
class Person:  height = 170
p = Person()  
print("Person 类的 height 是:", Person.height)  
print("实例 p 的 height 是:", p.height)  
- 误将全局变量当作局部变量:
def function():  global x  x = 10
function()  
print("主程序中的 x:", x)  
- 在循环中修改列表长度:
my_list = [1, 2, 3, 4, 5]
for i in my_list:  if i == 3:  my_list.remove(i)  print("删除了元素")  
- 切片越界:
my_string = "Hello, World!"
print(my_string[9:10])  
- 函数参数传递错误(列表切片):
def print_list(lst):  print(lst)
print_list([1, 2, 3][:3])  
- 误将整数当作字符串:
age = 18
if age < 18:  print("未成年")  
elif age >= 18:  print("成年")  
else:  print("奇怪,你的年龄不在合理范围内")