9.1 条件循环
循环 for 非常适合在我们确切知道要执行多少次循环体的时候使用。但是这种情况并不总是存在。在大约一半的情况下,需要在某个条件(规则)为真时执行循环体。
这就是Python中循环while存在的原因。它的形式比for循环还要简单:
while 条件:
指令1
指令2
指令N
循环将持续执行,直到 条件 为真。
重要! 为了防止循环无限执行,循环体内必须有一些影响条件的东西。这样条件才能最终变为假,循环才会结束。
例子:
| 例子 | 说明 |
|---|---|
|
循环将输出0 1 2 3 4到屏幕 |
在循环while中,一直执行两件事情:
- 检查条件。
- 执行命令块。
如果条件为真,那么命令块将执行。如果条件突然为假(即使命令块从未执行),则循环结束。
另一个结合用户输入未知数据量的循环while例子:
| 例子 | 说明 |
|---|---|
|
循环将打印屏幕上的所有数据,直到用户输入单词exit。之后循环会打印出它并结束。 |
9.2 break 语句
在Python中,break语句 用于立即终止循环while或循环for。在需要在条件正常结束之前退出循环的情况下,这个语句非常有用。
使用break可以提高程序流控制的灵活性,使其能够响应执行过程中动态变化的条件。
主要用途:
for num in range(10):
if num == 5:
break # 一旦num到达5,就终止循环
print(num)
在这个例子中,循环将打印从0到4的数字。一旦num到达5,循环就会被break语句中断。
在无限循环中的应用:
while True:
response = input("输入 'exit' 以退出: ")
if response == 'exit':
break
在这里break用于当用户输入'exit'时退出无限循环。
break语句还常用于中断嵌套循环的执行,处理需要立即停止的异常情况,以及在多线程或网络应用程序中中断进程。
例如,在查找或排序任务中,找到所需元素后进一步的循环执行没有意义:
elements = [1, 2, 3, -99, 5]
# 查找第一个负数元素
for element in elements:
if element < 0:
print("找到负数元素: ", element)
break
最佳实践包括聪明地使用break,以免程序逻辑复杂化并难以理解。好的实践是在循环中断的原因不明显时,给出注释。
使用break应该合理和适当。例如,为了提高代码的可读性和效率,而不仅仅是为了"破坏"逻辑。 有效使用这个语句可以显著提高程序性能,特别是在计算密集型算法中。
9.3 continue 语句
continue语句 在Python中是一个强大的循环控制工具。 它会跳过当前循环的剩余代码 并进入下一次迭代。这个语句经常在for和while循环中使用,以跳过某些条件而不打断整个循环。
基本使用方式
这里是一个简单循环中continue的工作原理:
for i in range(10):
if i % 2 == 0:
continue
print(i)
在这个例子中,循环只输出1到9的奇数。每当i为偶数时(即可以被2整除),continue语句生效,跳过print()函数调用并进入下一次迭代。
continue在实际场景中的应用
数据过滤:continue可以用于在循环中执行更复杂的操作前预先过滤数据。
data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
if not fruit:
continue # 跳过空字符串
print(fruit.capitalize())
跳过特定条件:特别有用在需要基于复杂条件跳过某些元素的情况下。
scores = [92, 85, 99, 78, 82, 100, 67, 88]
for score in scores:
if score < 80:
continue # 跳过低分
print("恭喜,您的得分: ", score)
continue语句在Python中提供了一种优雅的方法来简化代码并通过跳过迭代中不合适的元素使其更具可读性。过度使用continue可能会使得理解循环处理的数据变得复杂,特别是在复杂条件的循环中。请保持合理的平衡。
GO TO FULL VERSION