一、使用break语句
在for循环中使用break语句可以优雅的终止循环,break语句用于跳出当前循环语句,该语句后面的代码都不会执行。
for i in range(1, 11):
if i == 5:
break
print(i)
执行以上代码,输出结果为:
1
2
3
4
以上代码中,在循环执行到i等于5时,break语句被执行,循环就提前终止了。
二、使用while循环
使用while循环可以达到与break相同的效果。通过改变循环条件,当条件不满足时退出循环。
i = 1
while i < 11:
if i == 5:
break
print(i)
i += 1
执行以上代码,输出结果为:
1
2
3
4
以上代码中,使用while循环代替for循环,当循环条件不满足时退出循环。
三、使用else语句
在for循环中使用else语句可以优雅地终止循环。当没有执行循环语句内部的break语句时,for循环执行完后会执行else语句。
for i in range(1, 11):
if i == 15:
break
print(i)
else:
print("循环执行完毕")
执行以上代码,输出结果为:
1
2
3
4
5
6
7
8
9
10
循环执行完毕
以上代码中,for循环没有执行break语句,所以else语句也会被执行。
四、使用enumerate()函数
在使用for循环时,如果还需要获取当前循环到第几个元素,可以使用enumerate()函数来获取。
words = ["apple", "banana", "cherry"]
for i, word in enumerate(words):
if i == 1:
break
print(i, word)
执行以上代码,输出结果为:
0 apple
以上代码中,使用enumerate()函数获取当前循环到的元素位置,当位置为1时,使用break语句终止循环。
五、使用迭代器
python中任何一个可迭代对象都可以使用迭代器遍历,与for循环不同的是,迭代器可以使用next()函数手动获取下一个元素。使用try...except语句捕获StopIteration异常,当所有元素被遍历后终止循环。
words = ["apple", "banana", "cherry"]
iterator = iter(words)
while True:
try:
word = next(iterator)
if word == "banana":
break
print(word)
except StopIteration:
break
执行以上代码,输出结果为:
apple
以上代码中,使用iter()函数将列表转换为迭代器,使用next()函数手动获取下一个元素,当元素为"banana"时,使用break语句终止循环。
六、使用函数封装代码
当需要优雅地终止多个for循环时,可以将代码封装成函数,使用return语句终止函数的执行。
def print_until_banana(words):
for word in words:
if word == "banana":
return
print(word)
words = ["apple", "banana", "cherry"]
print_until_banana(words)
执行以上代码,输出结果为:
apple
以上代码中,将代码封装成函数print_until_banana(),当元素为"banana"时,使用return语句终止函数的执行。
七、总结
本文介绍了优雅的终止python for循环的七种方式,包括使用break语句、使用while循环、使用else语句、使用enumerate()函数、使用迭代器以及使用函数封装代码。在实际开发中,选择合适的方式可以让代码更加简洁、优雅、可读性更强。