循环语句包含:while和for语句
while循环
whil循环的表达式:
while判断条件:
(这里统一四个空格)语句
一定要注意缩进和判断条件后面的冒号!
例如用while计算1-100的和:
1 #!/usr/bin/env python3
2
3 a = 100
4 b =05 counter = 1
6
7 while counter <=a:8 b = b +counter9 counter += 1
10 print(b)
运算结果:
1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/循环/while.py2 5050
3
4 Process finished with exit code 0
for语句
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for循环的格式:
1 for in :2
3 else:4
在循环中跳出break:
1 #!/usr/bin/env python3
2
3 a = ["C", "C++", "Perl", "Python"]4 for i ina:5 if i == 'C':6 print('列表中包含C')7 break #跳出本次循环
8 print('干的漂亮~')9 else:10 print('列表中没有C')11 print('呵呵')
运行结果:
1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/循环/while.py2 列表中包含C3 呵呵4
5 Process finished with exit code 0
range()函数
如果你需要遍历数字列表,可以使用内置函数range()。他会生成数列:
1 >>> for i in range(5):2 ... print(i)3 ...4 05 1
6 2
7 3
8 4
也可以指定range区间的值:
1 >>> for i in range(5,9):2 ... print(i)3 ...4 5
5 6
6 7
7 8
也可以用range指定数字开始并指定不同的增量(甚至可以是负数;有时这也叫做步长)
1 >>> for i in range(0,10,3):2 ... print(i)3 ...4 05 3
6 6
7 9
也可以结合range()和len()函数遍历一个序列的索引:
1 >>> a = ['Mary', 'had', 'a', 'little', 'lamb']2 >>> for i inrange(len(a)):3 ... print(i,a[1])4 ...5 0 had6 1had7 2had8 3had9 4had10 >>> for i inrange(len(a)):11 ... print(i,a[i])12 ...13 0 Mary14 1had15 2a16 3little17 4 lamb
用range()函数创建一个列表:
1 >>> list(range(5))2 [0, 1, 2, 3, 4]
brea和continue语句及循环中的else子语句
break语句可以跳出for和while的循环体。如果你从for或while循环中终止,任何对应的循环else块将不执行。
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
循环语句可以有else子句;它在穷尽列表(以for循环)或条件变为假(以while循环)循环终止时被执行,但循环被break终止时不执行.如下查寻质数的循环例子:
1 for i in range(2,10):2 for x in range(2,i):3 if i % x ==0:4 print(i,'equals',x,'*',i//x)5 break
6 else:7 print(i,'is a prime number')
运行结果:
1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/循环/while.py2 4 equals 2 * 2
3 6 equals 2 * 3
4 8 equals 2 * 4
5 9 equals 3 * 3
6 9 isa prime number7
8 Process finished with exit code 0
pass语句
pass语句什么都不做。它只在语法上需要一条语句但程序不需要任何操作时使用.例如:
1 >>> whileTrue:2 ... pass #如果回车还会一直在等待状态
3 ...
enumrate
为可迭代的对象添加序号:
1 li = ['haha','hehe','asd',124]2 for k,v in enumerate(li,1): #1表示从一开始添加序号
3 print(k,v)
运行结果:
1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/循环/while.py2 1haha3 2hehe4 3asd5 4 124
6
7 Process finished with exit code 0
*在Python3.x中xrange已经没了,range相当于python2.x中的xrange