码迷,mamicode.com
首页 > 其他好文 > 详细

程序流程控制2 for循环

时间:2017-12-24 12:44:17      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:focus   默认   对象   bottom   ber   pen   www   9.1   rap   

for循环是python中的一个通用的序列迭代器,可以遍历序列对象中的所有对象。
1、for循环基本格式
for循环基本格式如下。
for var in object:
    循环体语句块
else:
    语句块
4
 
1
for var in object:
2
    循环体语句块
3
else
4
    语句块
else部分可以省略。for执行时,依次将可迭代对象object中的值赋给变量var。var每赋值一次,则执行一次循环体语句块。循环执行结束后时,如果有else部分,则执行对应的语句块。else部分只在正产结束循环时执行。如果用break跳出循环,则不会执行else部分。
例如;
for x in (1,2,3,(4,5)):
    print(x)
 
1
2
3
(4,5)

for x in "book":
    print(x)

b
o
o
k

for x in (1,2,3):
    print(x*2)
else:
    print("loop over")
    
2
4
5
loop over
25
 
1
for x in (1,2,3,(4,5))
2
    print(x)
3
 
4
1
5
2
6
3
7
(4,5)
8
9
for x in "book":
10
    print(x)
11
12
b
13
o
14
o
15
k
16
17
for x in (1,2,3):
18
    print(x*2)
19
else:
20
    print("loop over")
21
    
22
2
23
4
24
5
25
loop over
在迭代字典对象时,变量一次迭代字典的各个键。例如:
d={‘name‘:‘john‘,‘age‘:25}
for x in d:
    print(x,d[x])
    
age 25
name john
6
1
d={‘name‘:‘john‘,‘age‘:25}
2
for x in d:
3
    print(x,d[x])
4
    
5
age 25
6
name john
可以使用range() 函数来生成包含连续多整数的range对象,其基本格式如下:
range(end)
range(start,end[,step])
x
1
range(end)
2
range(start,end[,step])
指定end参数时,生成整数范围为0~end-1.指定start时,生成整数范围为start~end-1,间隔为step。step默认为1。
例如:
for x in range(3):
    print(x)
0
1
2

for x in range(-2,2):
    print(x)
-2
-1
0
1

for x in range(-2,2,2):
    print(x)
 -2
0
x
1
for x in range(3):
2
    print(x)
3
0
4
1
5
2
6
7
for x in range(-2,2):
8
    print(x)
9
-2
10
-1
11
0
12
1
13
14
for x in range(-2,2,2):
15
    print(x)
16
 -2
17
0

2、多个变量迭代
可在for循环中用多个变量来迭代序列对象。例如:
for (a,b) in ((1,2),(3,4),(5,6)):
    print(a,b)
1 2
3 4
5 6
1
 
1
for (a,b) in ((1,2),(3,4),(5,6)):
2
    print(a,b)
3
1 2
4
3 4
5
5 6
与赋值语句类似,可以用"*" 给变量赋值给一个列表。例如:
for(a,*b) in ((1,2,‘abc‘),(3,4,5)):
    print(a,b)
1[2,‘abc‘]
3[4,5]
1
 
1
for(a,*b) in ((1,2,‘abc‘),(3,4,5)):
2
    print(a,b)
3
1[2,‘abc‘]
4
3[4,5]

3、break和continue
break语句用于跳出当前循环,即提前结束循环(包括跳过else)。Continue语句则用于跳过循环体剩余语句,回到循环开头开始下一次迭代。
        例如,下面的代码用for循环找出100~999范围内的前10个回文数字---3位数中个位和百位相同的数字为回文数字。
a=[]
n=()
for x in range(100,999):
    s=str(x)
    if s[0]!=s[-1]:
        continue
    a.append(x)
    n+=1
    if n==10:
        break
else:
    print(‘loop over‘)
print(a)
x
1
a=[]
2
n=()
3
for x in range(100,999):
4
    s=str(x)
5
    if s[0]!=s[-1]:
6
        continue
7
    a.append(x)
8
    n+=1
9
    if n==10:
10
        break
11
else:
12
    print(‘loop over‘)
13
print(a)

4、嵌套使用for循环
python允许嵌套使用for循环,即在for循环内部使用for循环。例如,下面的代码输出100以内的素数(素数指除了1和他本身之外不能被其他数整除的数)。
print(2,3,end=" ")         #2、3是素数,直接输出,end=" " 使后续输出不换行。
for x in range(4,100):
    for n in range(2,x):
        if x%n==0:
            break
    else:
        print(x,end=" ")
else:
    print("over")
1
1
print(2,3,end=" ")         #2、3是素数,直接输出,end=" " 使后续输出不换行。
2
for x in range(4,100):
3
    for n in range(2,x):
4
        if x%n==0:
5
            break
6
    else:
7
        print(x,end=" ")
8
else:
9
    print("over")
















程序流程控制2 for循环

标签:focus   默认   对象   bottom   ber   pen   www   9.1   rap   

原文地址:http://www.cnblogs.com/one99/p/8097623.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!