详解Python 循环嵌套

1.Python 循环嵌套介绍

循环是编程中经常使用的一种语句结构,Python提供了多种循环结构,其中最常用的是for循环和while循环。循环嵌套则是在一个循环中嵌套另一个循环,以实现更复杂的功能。

1.1 for循环嵌套

for循环的嵌套可以实现多重循环,通常用于对多维列表或元组的遍历。

for i in range(3): # 外层循环

for j in range(2): # 内层循环

print('i:',i,', j:',j)

输出结果:

 

i: 0 , j: 0

i: 0 , j: 1

i: 1 , j: 0

i: 1 , j: 1

i: 2 , j: 0

i: 2 , j: 1

以上代码中,i表示外层循环的变量,j表示内层循环的变量,内层循环在外层循环的每一次循环中都会执行完一次。

1.2 while循环嵌套

while循环也可以嵌套,具体使用方法与for循环类似。

i = 1

while i < 4: # 外层循环

j = 1

while j < 3: # 内层循环

print('i:',i,', j:',j)

j += 1

i += 1

输出结果:

i: 1 , j: 1

i: 1 , j: 2

i: 2 , j: 1

i: 2 , j: 2

i: 3 , j: 1

i: 3 , j: 2

以上代码中,i表示外层循环的变量,j表示内层循环的变量,内层循环在外层循环的每一次循环中都会执行完一次。

2.循环嵌套的常见应用

循环嵌套常用于各种算法和程序的实现中,以下介绍几个常见的应用。

2.1 打印九九乘法表

九九乘法表是小学数学中的必学内容,下面通过循环嵌套来实现。

for i in range(1, 10):

for j in range(1, i+1):

print(j, '*', i, '=', i*j, end='\t')

print() # 输出空行

输出结果:

1 * 1 = 1

1 * 2 = 2

2 * 2 = 4

1 * 3 = 3

2 * 3 = 6

3 * 3 = 9

1 * 4 = 4

2 * 4 = 8

3 * 4 = 12

4 * 4 = 16

1 * 5 = 5

2 * 5 = 10

3 * 5 = 15

4 * 5 = 20

5 * 5 = 25

1 * 6 = 6

2 * 6 = 12

3 * 6 = 18

4 * 6 = 24

5 * 6 = 30

6 * 6 = 36

1 * 7 = 7

2 * 7 = 14

3 * 7 = 21

4 * 7 = 28

5 * 7 = 35

6 * 7 = 42

7 * 7 = 49

1 * 8 = 8

2 * 8 = 16

3 * 8 = 24

4 * 8 = 32

5 * 8 = 40

6 * 8 = 48

7 * 8 = 56

8 * 8 = 64

1 * 9 = 9

2 * 9 = 18

3 * 9 = 27

4 * 9 = 36

5 * 9 = 45

6 * 9 = 54

7 * 9 = 63

8 * 9 = 72

9 * 9 = 81

2.2 寻找水仙花数

水仙花数是指一个n位正整数(n≥3),它的每个位上的数字的n次幂之和等于它本身。

153 = 1^3 + 5^3 + 3^3

下面通过循环嵌套来寻找3位水仙花数。

for i in range(100, 1000):

hundred = i // 100 # 取百位数

ten = i // 10 % 10 # 取十位数

one = i % 10 # 取个位数

if pow(hundred, 3) + pow(ten, 3) + pow(one, 3) == i:

print(i)

输出结果:

153

370

371

407

2.3 判断质数

质数是指除了1和自身以外,无法被其他自然数整除的自然数。判断一个数是否为质数常用的方法是试除法,即用该数除以2到sqrt(n)之间的所有自然数,如果都无法整除,则该数为质数。

下面通过循环嵌套来判断一个数是否为质数。

import math

def is_prime(n):

if n < 2:

return False

for i in range(2, int(math.sqrt(n))+1):

if n % i == 0:

return False

return True

num = 10

if is_prime(num):

print(num, '是质数')

else:

print(num, '不是质数')

输出结果:

10 不是质数

其中math.sqrt(n)用于求一个数的平方根。

3.注意事项

在使用循环嵌套时需要注意以下几点:

循环嵌套的层数过多容易导致代码复杂度过高,不易维护。

循环嵌套中的变量名要具有描述性,方便理解。

在循环嵌套过程中尽量减少重复代码,提高代码可读性。

4.总结

循环嵌套是编程中常用的一种语句结构,可以实现复杂的功能,如打印乘法表、寻找水仙花数和判断质数等。在使用循环嵌套时,需要注意循环嵌套的层数过多容易导致代码复杂度过高,变量命名要具有描述性,循环体中尽量减少重复代码。

后端开发标签