Heim  >  Artikel  >  Backend-Entwicklung  >  Python 循环嵌套

Python 循环嵌套

高洛峰
高洛峰Original
2016-11-23 10:55:131996Durchsuche

Python 语言允许在一个循环体里面嵌入另一个循环。

Python for 循环嵌套语法:

for iterating_var in sequence:

   for iterating_var in sequence:

      statements(s)

   statements(s)

   

Python while 循环嵌套语法:

while expression:

   while expression:

      statement(s)

   statement(s)

   

你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。

实例:

1. 从第一个列表中每次取出一个,从第二个列表中也每次取出一个,组合成一个新的列表,新列表中包含所有组合

List1 = ['zi', 'qiang', 'xue', 'tang']

List2 = [1, 2]

 

new_list = []

 

for m in List1:

    for n in List2:

        new_list.append([m, n])

 

print new_list

   

结果:

[['zi', 1], ['zi', 2], ['qiang', 1], ['qiang', 2], ['xue', 1], ['xue', 2], ['tang', 1], ['tang', 2]]

   

 

2. 从一个列表中每次取出两个,找出所有组合方式

List = [1, 2, 3, 4, 5]

length = len(List)

 

for x in range(0, length-1):

    for y in range(x+1, length):

        print List[x], List[y]

   

结果:

1 2

1 3

1 4

1 5

2 3

2 4

2 5

3 4

3 5

4 5

   

 

3. 以下实例使用了嵌套循环输出2~20之间的素数:

分析:对于一个数 n ,如果从 1 到 n ** 0.5(根号n) 的数都是能整除,那么n这个数就是素数。

3.1 用 for 来实现

# -*- coding: utf-8 -*-

 

n = 20

 

for i in range(1, n):

    for j in range(2, int(i**0.5)):

        if i % j == 0:

            break

    else:

        print i, '是素数'

   

3.2 用 while 来实现

#!/usr/bin/python

# -*- coding: utf-8 -*-

 

i = 2

while(i < 20):

j = 2

while(j <= (i/j)):

if not(i%j): # 或者写 if i % j == 0,如果整除的意思

break

j = j + 1

if (j > i/j):

       print i, " 是素数"

   i = i + 1

 

print "Good bye!"

   

解释:i % j 的意思是 i 除以 j 后的余数。对于数字,0对应的布尔值为假,其它值都是真,not ( i % j ) 的意思是 ,当 i % j 为 0 时才能条件成立,意思就是整除的时候,如果能整除的意思。

 

以上实例输出结果:

2 是素数

3 是素数

5 是素数

7 是素数

11 是素数

13 是素数

17 是素数

Good bye!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Python continue 语句Nächster Artikel:Python 条件语句