Python流程控制-for循环
循环是一个结构,导致程序要重复一定的次数
条件循环也是如此,当条件变为假,循环结束
for 循环
- 在序列里,使用for循环遍历。
- 字符串,元组,列表,字典,都属于序列。
格式
for iterating_var in sequence:
statemen(s)
for循环遍历字典
默认情况下,循环便利字典,字典只能返回key列表,这时我们可以利用字典的 方法,把字典转换为列表或者对象,来编列字典中的key和value
for k,v in b.items(): print k,v
把字典转换为列表(key和value会以元组的形式存储),然后定义两个变量,接收列表中元组的两个值,
也可以利用字典的iteritems()方法,把字典转换成列表对象,这样更节省内存空间(类似xrange和range的区别)
for k,v in b.iteritems(): print k,v
练习
打印9*9乘法表:
#!/usr/bin/env python for i in xrange(1,10): for j in xrange(1,i+1): print "%s * %s = %s\t" % ( i,j,i*j ), print
打印10以内的奇偶数:
#!/usr/bin/env python for i in xrange(1,11): if i % 2 == 0: print i,
注意:由于print默认会打印一个换行符,这里我们在print语句后面添加,(逗号)来取消换行符的输出。
扩展
1.for的高级特性
print [ i for i in range(10) ] 这叫列表重写,把for i in range(10),依次赋值给i,这样实际上等同于 for i in range(10): print i 后面也可以加条件: print [ i for i in range(10) if i % 2 == 0 ] 来取偶数
2.区间对象
range(start,stop,step) 整数型,用来取start----stop的区间,其中start和step默认省略,并且stop不包含在区间内,可以取一个范围,step是步长 xrange(int) 用法和range相同,只不过range会直接展开列表(展开列表即要占内存空间,在区间很大的时候,不建议使用),而xrange不会展开,仅仅当我们轮训的时候,才会展开显示。
for循环的else语句
for iterating_var in sequence: statemen(s) else: statemen(s)
else语句为for循环正常结束后要执行的语句,如果for循环被终止(比如满足某条件跳出循环等),那么就不会执行else后面的语句
for循环控制
- continue:继续,当满足条件后,跳过本次循环。
- break:退出,当满足某一个条件后,终止循环。
- pass:占位符,仅仅起到占位的左右,没有其他效果。
- sys.exit():sys模块的exit方法,表示退出整个程序
练习
猜数字游戏,给6次机会,数字是20以内的随机数。
#!/usr/bin/env python # -*- coding:utf8 -*- import sys import random import time a = random.randint(1,20) for i in xrange(1,7): num = input("请猜一个数字:") time1 = 6 - i if num == a: print ("你赢了") sys.exit() elif num > a: print("猜大了") print "你还有%s次机会" % time1 print "-------------------------------------" time.sleep(1) continue elif num < a: print("猜小了") print "你还有%s次机会" % time1 print "-------------------------------------" time.sleep(1) continue else: print("你输了")