一文了解 Python 中的循环嵌套

Python 和其他编程语言中基本的结构之一是循环。Python 提供了两种主要的循环类型:“for”和“while”。了解如何有效地使用和嵌套这些循环对于解决各种编程问题至关重要。在本文中,我们将探究 Python 中循环嵌套的用法,并提供示例来帮助你熟练地使用循环嵌套。

尽管嵌套循环没有什么特别之处,但作为初学者,它们可能看起来有点难以理解。

for 循环

Python 中的 for 循环用于遍历序列(列表、元组、字符串或 range())或其他任何可迭代对象。

for 循环的基本语法:

for 循环变量 in 序列:
    循环体

示例:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

while 循环

while 循环用于重复执行代码块。

while 循环的基本语法:

while 条件表达式:
    循环体

示例:

count = 0
while count < 5:
    print(count)
    count += 1

for 循环嵌套

循环嵌套是指将一个循环放入另一个循环中。可以处理多维数据或迭代多个序列。

为了演示嵌套循环的工作原理,让我们使用一个由两个循环组成的嵌套循环:一个外循环和一个内循环。

for 循环嵌套的通用语法:

for 变量1 in 序列1:
   for 变量2 in 序列2:
      内循环体
   外循环体

外循环的每次迭代都会导致内循环运行其所有迭代。在内部循环终止之前,外部循环不会运行。

示例:

# 九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print('{}x{}={}\t'.format(i,j,i*j),end='')
    print()

输出:

1x1=1	
2x1=2	2x2=4	
3x1=3	3x2=6	3x3=9	
4x1=4	4x2=8	4x3=12	4x4=16	
5x1=5	5x2=10	5x3=15	5x4=20	5x5=25	
6x1=6	6x2=12	6x3=18	6x4=24	6x5=30	6x6=36	
7x1=7	7x2=14	7x3=21	7x4=28	7x5=35	7x6=42	7x7=49	
8x1=8	8x2=16	8x3=24	8x4=32	8x5=40	8x6=48	8x7=56	8x8=64	
9x1=9	9x2=18	9x3=27	9x4=36	9x5=45	9x6=54	9x7=63	9x8=72	9x9=81	

示例:

# 查找素数
for num in range(2, 101):
    is_prime = True
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num, end=' ')

输出:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

while 循环嵌套

while 循环嵌套执行原理与 for 循环类似。

while 循环嵌套的通用语法:

while 条件1:
   while 条件2:
      内循环体
   外循环体

同样,在 while 循环嵌套中,外循环的每次迭代都会导致内循环运行其所有迭代。

示例:

# 矩形图案
j = 0
while j < 5:
    i = 0
    while i < 5:
        print('*', end='') 
        i += 1
    print() 
    j += 1

输出:

*****
*****
*****
*****
*****

示例:

# 三角图案
row = 1
while row <= 5:
    col = 1
    while col <= row:
        print('*', end=' ')
        col += 1
    print()
    row += 1

输出:

* 
* * 
* * * 
* * * * 
* * * * * 

嵌套循环是指循环中的循环。一个循环中可以有任意数量的循环。还可以让 for 循环和 while 循环相互嵌套。

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈。