Python 循环嵌套
Python 语言允许在一个循环体里面嵌入另一个循环。
Python for 循环嵌套语法:
foriterating_varinsequence:
foriterating_varinsequence:
statements(s)
statements(s)
Python while 循环嵌套语法:
whileexpression:
whileexpression:
statement(s)
statement(s)
你可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环, 反之,你可以在for循环中嵌入while循环。
实例:
1. 从第一个列表中每次取出一个,从第二个列表中也每次取出一个,组合成一个新的列表,新列表中包含所有组合
List1=['zi','qiang','xue','tang']
List2=[1,2]
new_list=[]
forminList1:
forninList2:
new_list.append([m,n])
printnew_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)
forxinrange(0,length-1):
foryinrange(x+1,length):
printList[x],List[y]
结果:
12
13
14
15
23
24
25
34
35
45
3. 以下实例使用了嵌套循环输出2~20之间的素数:
分析:对于一个数 n ,如果从 1 到 n ** 0.5(根号n) 的数都是能整除,那么n这个数就是素数。
3.1 用 for 来实现
#-*-coding:utf-8-*-
n=20
foriinrange(1,n):
forjinrange(2,int(i**0.5)):
ifi%j==0:
break
else:
printi,'是素数'
3.2 用 while 来实现
#!/usr/bin/python
#-*-coding:utf-8-*-
i=2
while(i
j=2
while(j<=(i/j)):
ifnot(i%j):#或者写ifi%j==0,如果整除的意思
break
j=j+1
if(j>i/j):
printi,"是素数"
i=i+1
print"Goodbye!"
解释:i % j 的意思是 i 除以 j 后的余数。对于数字,0对应的布尔值为假,其它值都是真,not ( i % j ) 的意思是 ,当 i % j 为 0 时才能条件成立,意思就是整除的时候,如果能整除的意思。
以上实例输出结果:
2是素数
3是素数
5是素数
7是素数
11是素数
13是素数
17是素数
Goodbye!