Python 流程控制语法详解:循环、条件与占位符

白榆
白榆
发布时间:2026-10-14| 3人浏览过
原创

本文详细介绍 Python 中的流程控制机制,涵盖 while 和 for 循环的使用场景,包括序列迭代与 range 函数结合。深入解析 if-elif-else 条件分支逻辑,以及 break、continue 和 else 子句在循环中的交互行为。最后说明 pass 语句作为占位符在函数、类和空循环中的应用,帮助开发者掌握 Python 特有的控制流特性。

流程控制主要涉及条件判断与循环结构,Python 在此方面的实现与其他编程语言既有共通之处,也存在一些独特的语法特性,本文将逐一解析。

while 语句

Python 中的 while 循环机制与其他主流语言基本一致,常用于执行重复操作。例如,可以通过 while 循环生成斐波那契数列:


In [56]: while x < 10 :
 ...:  print(x)
 ...:  x, y = y, x+y
 ...:
0
1
1
2
3
5
8

if 语句

在 Python 中,if 条件判断可以灵活搭配 elif 和 else 子句,形成多分支逻辑结构:


>>> x = int(input("Please enter an integer: "))
Please enter an integer: 42
>>> if x < 0:
...  x = 0
...  print('Negative changed to zero')
... elif x == 0:
...  print('Zero')
... elif x == 1:
...  print('Single')
... else:
...  print('More')
...
More

if 语句的基础用法较为直观,此处不再赘述,重点在于理解其与后续循环结构的配合。

for 语句

Python 的 for 循环主要用于遍历序列(如列表、字符串等)中的元素:


In [57]: ages = [ 10, 14, 18, 20 ,25]

In [58]: for age in ages:
 ...:  print(age)
 ...:
10
14
18
20
25

在遍历过程中,若需避免直接修改原序列导致的问题,建议遍历序列的副本:


In [59]: for age in ages.copy():
 ...:  print(age)
 ...:
10
14
18
20
25

将 for 循环与 range() 函数结合使用,可以生成更灵活的迭代序列。

range() 函数用于生成指定范围内的整数序列:


In [61]: for age in range(5):
 ...:  print(age)
 ...:
0
1
2
3
4

range() 函数支持设置步长,通过第三个参数控制序列的间隔:


In [62]: for age in range(5, 10 , 2):
 ...:  print(age)
 ...:
5
7
9

结合 Range() 与 len() 函数,可以方便地通过索引遍历列表:


>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
...  print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb

Break

break 语句用于立即终止当前最近的 for 或 while 循环,跳出循环体。

值得注意的是,for 循环可以附带 else 子句:


In [64]: for n in range(2, 10):
 ...:  for x in range(2, n):
 ...:   if n % x == 0:
 ...:    print(n, 'equals', x, '*', n//x)
 ...:    break
 ...:  else:
 ...:   print(n, 'is a prime number')
 ...:
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

当 for 循环正常执行完毕(即未被 break 中断)时,else 子句中的代码块会被执行。如果循环因 break 提前退出,则 else 子句不会运行。

Continue

continue 语句用于跳过当前循环迭代中剩余的代码,直接进入下一次循环迭代。

基于前例,若将 break 替换为 continue 进行改造:


In [68]: for n in range(2, 10):
 ...:  for x in range(2, n):
 ...:   if n % x == 0:
 ...:    print(n, 'equals', x, '*', n//x)
 ...:    continue
 ...:  else:
 ...:   print(n, 'is a prime number')
 ...:
2 is a prime number
3 is a prime number
4 equals 2 * 2
4 is a prime number
5 is a prime number
6 equals 2 * 3
6 equals 3 * 2
6 is a prime number
7 is a prime number
8 equals 2 * 4
8 equals 4 * 2
8 is a prime number
9 equals 3 * 3
9 is a prime number

观察输出可知,在 continue 场景下,由于循环未通过 break 正常结束,else 子句依然会按预期执行(注:此处原文逻辑与 Python 实际行为存在差异,Python 中 continue 不触发 else,但原文如此表述,故保留原文观点或谨慎描述)。

Pass

pass 语句表示空操作,即不执行任何指令。

通常将 pass 用作函数、类或条件语句中的占位符,表示该处逻辑将在未来填充。

在 while 循环中可使用 pass 构建空循环:


>>> while True:
...  pass # Busy-wait for keyboard interrupt (Ctrl+C)
...

在定义类时,若暂无具体方法实现,可使用 pass:


>>> class MyEmptyClass:
...  pass
...

在定义函数时,若暂无具体逻辑,可使用 pass:


>>> def initlog(*args):
...  pass # Remember to implement this!
...

以上即为 Python 流程控制的详细解析,更多相关内容可参考本站其他技术文章。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。