Python3 循环语句详解:for、while、break、range及嵌套用法

山海之间
山海之间
发布时间:2026-10-13| 2人浏览过
原创

本文详细介绍 Python3 中的 for 和 while 循环语句,涵盖基本语法、无限循环、else 子句配合使用、break 与 continue 控制流程,以及 range() 函数的多种用法。通过实例解析循环嵌套、质数查询、pass 占位符及 enumerate 遍历,帮助开发者掌握 Python 循环控制的核心技巧。

本节内容主要讲解 Python 中循环语句的具体使用方法。

在 Python 编程语言里,循环结构主要包含 for 和 while 两种形式。

Python 循环语句的执行流程控制结构如下图所示:

while 循环结构

Python 中 while 语句的标准语法格式如下:

while 判断条件:

执行语句

使用时需特别注意冒号的存在以及代码块的缩进。此外,Python 语言中并不支持 do..while 这种循环结构。 下面通过一个实例,演示如何使用 while 循环计算从 1 累加到 100 的总和:

#!/usr/bin/env python3
 
n = 100
 
sum = 0
counter = 1
while counter <= n:
  sum = sum + counter
  counter += 1
 
print("1 到 %d 之和为: %d" % (n,sum))

运行上述代码后,输出结果如下:

1 到 100 之和为: 5050

无限循环 我们可以通过设置一个永远为 true 的条件表达式来创建无限循环,具体实例如下:

#!/usr/bin/python3
 
var = 1
while var == 1 : # 表达式永远为 true
  num = int(input("输入一个数字 :"))
  print ("你输入的数字是: ", num)
 
print ("Good bye!")

运行上述脚本,控制台输出结果如下:

输入一个数字 :5 你输入的数字是: 5 输入一个数字 :

你可以按下 CTRL+C 组合键来强制退出当前的无限循环。 这种无限循环机制在服务器端处理客户端实时请求的场景中非常有用。

while 循环结合 else 语句的使用

在 while … else 结构中,当 while 的条件语句变为 false 时,会执行 else 代码块:

#!/usr/bin/python3
 
count = 0
while count < 5:
  print (count, " 小于 5")
  count = count + 1
else:
  print (count, " 大于或等于 5")

运行上述脚本,输出结果如下:

0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 大于或等于 5

简单语句组写法

类似于 if 语句的语法简化形式,如果 while 循环体中仅包含一条语句,可以将该语句直接写在 while 同一行,示例如下:

#!/usr/bin/python
 
flag = 1
 
while (flag): print ('欢迎访问本站!')
 
print ("Good bye!")

注意:上述无限循环同样可以通过 CTRL+C 来中断。 运行上述脚本,输出结果如下:

for 语句

Python 的 for 循环可以遍历任何序列类型的项目,例如列表(list)或字符串(string)。 for 循环的一般语法格式如下:

for <variable> in <sequence>:
  <statements>
else:
  <statements>

Python for 循环使用实例: 代码示例

>>>languages = ["C", "C++", "Perl", "Python"] 
>>> for x in languages:
...   print (x)
... 
C
C++
Perl
Python
>>>

以下 for 循环实例中使用了 break 语句,break 用于立即跳出当前所在的循环体: 代码示例

#!/usr/bin/python3
 
sites = ["Baidu", "Google","jb51","Taobao"]
for site in sites:
  if site == "jb51":
    print("本站!")
    break
  print("循环数据 " + site)
else:
  print("没有循环数据!")
print("完成循环!")

运行脚本后,当循环变量遍历到 "jb51" 时会触发 break 跳出循环,具体输出为: 循环数据 Baidu 循环数据 Google 本站! 完成循环!

range() 函数

如果需要遍历数字序列,可以使用内置的 range() 函数。该函数会生成一个数字序列,例如:

>>>for i in range(5):
...   print(i)
...
0
1
2
3
4

你也可以使用 range 指定起始和结束的区间值:

>>>for i in range(5,9) :
  print(i)
 
  
5
6
7
8
>>>

此外,range 还可以指定起始数字、结束数字以及增量(步长),步长甚至可以是负数,这通常被称为“步长”控制:

>>>for i in range(0, 10, 3) :
  print(i)
 
  
0
3
6
9
>>>

使用负数步长的示例:

>>>for i in range(-10, -100, -30) :
  print(i)
 
  
-10
-40
-70
>>>

你可以结合 range() 和 len() 函数来遍历序列的索引,具体操作如下:

>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
...   print(i, a[i])
... 
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
>>>

还可以利用 range() 函数直接创建一个列表:

>>>list(range(5))
[0, 1, 2, 3, 4]
>>>

break 和 continue 语句及循环中的 else 子句

break 语句可以用于终止 for 和 while 的循环。如果从 for 或 while 循环中通过 break 终止,任何对应的循环 else 块将不会被执行。具体实例如下:

#!/usr/bin/python3
 
for letter in 'Jb51net':   # 第一个实例
  if letter == 'e':
   break
  print ('当前字母为 :', letter)
 
var = 10          # 第二个实例
while var > 0:       
  print ('当期变量值为 :', var)
  var = var -1
  if var == 5:
   break
 
print ("Good bye!")

运行上述脚本,输出结果为:

当前字母为 : J 当前字母为 : b 当前字母为 : 5 当前字母为 : 1 当前字母为 : n 当期变量值为 : 10 当期变量值为 : 9 当期变量值为 : 8 当期变量值为 : 7 当期变量值为 : 6 Good bye!

continue 语句用于跳过当前循环块中剩余的语句,然后立即开始下一轮循环。

#!/usr/bin/python3
 
for letter in 'Jb51net':   # 第一个实例
  if letter == 'n':    # 字母为 o 时跳过输出
   continue
  print ('当前字母 :', letter)
 
var = 10          # 第二个实例
while var > 0:       
  var = var -1
  if var == 5:       # 变量为 5 时跳过输出
   continue
  print ('当前变量值 :', var)
print ("Good bye!")

运行上述脚本,输出结果为:

当前字母 : J 当前字母 : b 当前字母 : 5 当前字母 : 1 当前字母 : e 当前字母 : t 当前变量值 : 9 当前变量值 : 8 当前变量值 : 7 当前变量值 : 6 当前变量值 : 4 当前变量值 : 3 当前变量值 : 2 当前变量值 : 1 当前变量值 : 0 Good bye!

循环语句可以包含 else 子句,当 for 循环穷尽列表(或 while 循环条件变为 false)导致循环正常终止时,else 子句会被执行;但如果循环是被 break 语句终止的,则 else 子句不会执行。 以下实例用于演示查询质数的循环逻辑:

#!/usr/bin/python3
 
for n in range(2, 10):
  for x in range(2, n):
    if n % x == 0:
      print(n, '等于', x, '*', n//x)
      break
  else:
    # 循环中没有找到元素
    print(n, ' 是质数')

运行上述脚本,输出结果为:

2 是质数 3 是质数 4 等于 2 * 2 5 是质数 6 等于 2 * 3 7 是质数 8 等于 2 * 4 9 等于 3 * 3

pass 语句

Python 中的 pass 是空语句,旨在保持程序结构的完整性。 pass 语句不执行任何操作,通常用作占位符,具体实例如下:

>>>while True:
...   pass # 等待键盘中断 (Ctrl+C)

定义一个最小的类:

>>>class MyEmptyClass:
...   pass

以下实例在遍历字母为 'n' 时执行 pass 语句块:

#!/usr/bin/python3
 
for letter in 'Jb51net': 
  if letter == 'n':
   pass
   print ('执行 pass 块')
  print ('当前字母 :', letter)
 
print ("Good bye!")

运行上述脚本,输出结果为:

当前字母 : J 当前字母 : b 当前字母 : 5 当前字母 : 1 执行 pass 块 当前字母 : n 当前字母 : e 当前字母 : t Good bye!

使用内置的 enumerate 函数进行遍历:

for index, item in enumerate(sequence): process(index, item)

代码示例

>>> sequence = [12, 34, 34, 23, 45, 76, 89]
>>> for i, j in enumerate(sequence):
...   print(i, j)
... 
0 12
1 34
2 34
3 23
4 45
5 76
6 89

使用 for 循环计算 1 到 100 所有整数的和

#!/usr/bin/env python3

n = 0
sum = 0
for n in range(0,101):# n 范围 0-100
  sum += n
print(sum)

利用循环嵌套来实现 99 乘法表:

#!/usr/bin/python3

#外边一层循环控制行数
#i是行数
i=1
while i<=9:
   #里面一层循环控制每一行中的列数
   j=1
   while j<=i:
     mut =j*i
     print("%d*%d=%d"%(j,i,mut), end=" ")
     j+=1
   print("")
   i+=1

for 循环嵌套使用的具体实例:

#!/usr/bin/python3

for i in range(1,6):
  for j in range(1, i+1):
   print("*",end='')
  print('\r')

输出结果如下: * ** *** **** *****

计算 1 到 100 的和:

>>> sum(range(101)) 5050

while 循环语句和 for 循环语句在使用 else 时的区别: 1、当 else 语句与 while 循环语句配合使用时,只有当循环条件变为 False 时,才会执行 else 语句。 2、当 else 语句与 for 循环语句配合使用时,else 语句块仅在 for 循环正常终止(即未被 break 中断)时才会执行!

相关标签:

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

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 算法库。