Python循环嵌套

2024-11-05 11

嵌套循环和if语句的嵌套原理相似,就是在一个循环体内嵌套另外一个循环体。不同的是循环嵌套可以采用for-for嵌套、for-while嵌套、while-for嵌套、以及while-while嵌套四种形式。

155a358a89f50907f701145a7ab6eba2_u=4174563263,3438303531&fm=253&fmt=auto&app=120&f=JPEG_w=736&h=387.webp

1. for-for嵌套

它的形式为:

1
2
3
4
 for in range(n):
     for in range(m):
         循环体2
     循环体1

举个例子:

我们定义两个列表(一种存储数据的容器)。

list_first = [1,2,3,4,5,6,7,8,9]

list_second = [2,4,8,10,12,20]

我们要找到两个列表中相同的数据并打印出来。

代码如下:

1
2
3
4
5
6
 list_first = [1,2,3,4,5,6,7,8,9]
 list_second = [2,4,8,10,12,20]
 for in list_first:
     for in list_second:
         if == j:
             print(i)

输出结果为:

1
2
3
 2
 4
 8

2. for-while嵌套 

它的形式为:

1
2
3
4
for 变量 in 对象:
    while 条件:
        循环体2
    循环体1

举个例子:

index = [1,32,77,121,150]

遍历输出index列表中的值,对于小于100的数,把它每次加上10,直到大于100后再输出。

代码如下:

1
2
3
4
5
 index = [1,32,77,121]
 for in index:#遍历index
     while i < 100:#如果i小于100
         += 10#每次加上10
     print(i)

输出结果为:

1
2
3
4
 101
 102
 107
 121

3. while-while嵌套  

结构如下:

1
2
3
4
 while 条件:
     while 条件:
         循环体2
     循环体1

具体就不再举例,大家可以去在试着使用这种结构去解决问题。

4. while-for嵌套 

结构如下:

1
2
3
4
while 条件:
    while 条件:
        循环体2
    循环体1

5. 九九乘法表(作业1570)

在循环嵌套里有一比较经典的例子——打印九九乘法表。通过这个实例可以更清晰的看到双层循环嵌套的结构。

我们先来看一下代码:

1
2
3
4
for in range(1,10):#先遍历1~9
    for in range(1,i+1):#然后遍历1~i
        print(i,'*',j,'=',i * j,end='丨')#循环输出1~i * i的值
    print(end='\n')

再看一下输出结果:

1
2
3
4
5
6
7
8
9
1 * 1 = 1
2 * 1 = 22 * 2 = 4
3 * 1 = 33 * 2 = 63 * 3 = 9
4 * 1 = 44 * 2 = 84 * 3 = 124 * 4 = 16
5 * 1 = 55 * 2 = 105 * 3 = 155 * 4 = 205 * 5 = 25
6 * 1 = 66 * 2 = 126 * 3 = 186 * 4 = 246 * 5 = 306 * 6= 36
7 * 1 = 77 * 2 = 147 * 3 = 217 * 4 = 287 * 5 = 357 * 6= 427 * 7 = 49
8 * 1 = 88 * 2 = 168 * 3 = 248 * 4 = 328 * 5 = 408 * 6= 488 * 7 = 568 * 8 = 64
9 * 1 = 99 * 2 = 189 * 3 = 279 * 4 = 369 * 5 = 459 * 6= 549 * 7 = 639 * 8 = 729 * 9 = 81

运行图:

循环结构3

原理:先进行第一层循环,依次为1~9。第二层循环是在第一层循环的基础上再进行依次遍历,假如第一层循环现在是5,那么第二层循环找到1~5,然后分别用1~5去乘上5,那么就完成一次循环。我们在第1层循环中打印一个换行,可以使得代码更加明了。