Python中的循环是控制结构,用于重复执行一段代码块,直到满足特定条件为止。Python提供了两种主要的循环结构:
for item in iterable:
# 执行的代码块
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
for i in range(5): # 0到4
print(i)
person = {'name': 'John', 'age': 30, 'city': 'New York'}
for key, value in person.items():
print(f"{key}: {value}")
for index, fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
for i in range(3):
for j in range(2):
print(f"({i}, {j})")
while condition:
# 执行的代码块
count = 0
while count < 5:
print(count)
count += 1
while True:
user_input = input("输入'quit'退出: ")
if user_input == 'quit':
break
print(f"你输入了: {user_input}")
num = 0
while num < 10:
num += 1
if num % 2 == 0:
continue
print(num)
for i in range(5):
print(i)
else:
print("循环正常结束")
问题:while循环条件永远为真导致无限循环
# 错误示例
while True:
print("无限循环")
解决:确保循环条件最终会变为False,或使用break退出
问题:在遍历列表时修改列表
# 错误示例
numbers = [1, 2, 3, 4]
for num in numbers:
if num % 2 == 0:
numbers.remove(num) # 可能导致意外行为
解决:创建副本或使用列表推导式
numbers = [num for num in numbers if num % 2 != 0]
问题:大数据集上使用低效循环
# 低效示例
result = []
for i in range(1000000):
result.append(i*2)
解决:使用生成器或内置函数
result = [i*2 for i in range(1000000)] # 列表推导式
# 或
result = map(lambda x: x*2, range(1000000)) # map函数
问题:循环变量在循环结束后仍然存在
for i in range(5):
pass
print(i) # 输出4,可能不是预期行为
解决:明确循环变量的作用域,或使用不同变量名
squares = [x**2 for x in range(10)]
sum_of_squares = sum(x**2 for x in range(10))
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} is {age} years old")
for item in reversed([1, 2, 3]):
print(item)
for item in sorted([3, 1, 2]):
print(item)
通过合理使用Python的循环结构,可以编写出既高效又易读的代码。
没有搜到相关的文章