一、for循环
for循环:循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做。
目的:之所以要有for循环,是因为for循环在循环取值(遍历取值)比while循环更简洁。
(文末送读者福利)
二、for循环语法如下
for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典,其实也可以是tuple(),set()
代码一
代码二
1 2 3 4 5 6 7 8 | # # for循环 # # 列表取值 # l = ['lsj','a','b'] # for x in l: # print(x) lsj a b ... |
1 2 3 4 | # 参照例1来介绍for循环的运行步骤 # 步骤1:从列表['lsj','a','b']中读出第一个值赋值给x(x=‘lsj’),然后执行循环体代码 # 步骤2:从列表 [ 'lsj' , 'a' , 'b' ] |
三、 for循环应用案例
案例一:for循环实现方式1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # 简单版:for循环的实现方式 # l = ['lsj', 'b', 'c'] # 定义一个列表 # for x in l: # print(x) # lsj # b # c # 复杂版:while循环的实现方式 l = [ "lsj" , "b" , "c" ] i = 0 while i < 3 : print (l[i]) i + = 1 # lsj # b # c # 使用循环取出0-5的值 # 简单版:for循环的实现方式一、 # for count in range(6): # range(6)会产生从0-5这6个数 # print(count) # 复杂版:while循环的实现方式 # count = 0 # while count < 6: # print(count) # count += 1 |
1 2 3 4 5 6 7 8 9 | # 简单版:for循环的实现方式 dic = { <! - - - - > 'name' : 'lsj' , 'age' : 18 , 'gender' : 'male' } for k in dic: # for 循环默认取的是字典的key赋值给变量名k print (k,dic[k]) # name lsj # age 18 # gender male # 复杂版:while循环确实可以遍历字典,后续将会迭代器部分详细介绍 |
1 2 3 4 5 6 7 8 | #请用for循环嵌套的方式打印如下图形: * * * * * * * * * * * * * * * for i in range ( 3 ): for j in range ( 5 ): print ( "*" ,end = '') print () # print()表示换行 |
四、总结for循环与while循环的异同
(1)相同之处:都是循环,for循环可以干的事,while循环也可以干
(2)不同之处:
while循环称之为‘’条件循环‘’,循环次数取决于条件何时变为假
for循环称之为"取值循环",循环次数取决in后包含的值的个数
五、for循环控制循环次数:range()
in后直接放一个数据类型来控制循环次数有局限性:
当循环次数过多时,数据类型包含值的格式需要伴随着增加
range功能介绍
1 2 3 | range ( 10 ) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 从0开始有头无尾 range ( 1 , 10 , 1 ) # 1 2 3 4 5 6 7 8 9 设定开始,结束,步长 range ( 1 , 10 , 2 ) # 1 3 5 7 9 |
range()的补充:python2与python3的不同之处。
在python2中对range(10)的处理:一个篮子里面装有10个鸡蛋,空间较大。
在python3中对range(10)的优化:一只可以下10个鸡蛋的母鸡,空间较小。
for搭配range,可以按照索引取值,(比较麻烦所以不推荐)
1 2 3 4 5 | l = [ 'lsj' , 'a' , 'c' ] # len(l) for i in range ( len (l)): print (i, l[i]) for x in l: print (x) |
PEP8规范写法
1 2 3 4 5 6 7 | for i in range ( 5 ): if i = = 4 : continue # PEP8规范不建议这样写 print (i) for i in range ( 5 ): if i = = 4 : continue # PEP8规范这样写 print (i) |
六、for循环的跳出
for+break: 同while循环一样,只要运行到break就会立刻中止本层循环
for+else:同while循环一样,只要运行到break就立即终止本次循环
总结:for+break,for+continue,for+else的用法与while相同
练习一:1 2 3 4 5 | # 打印九九乘法表 for i in range ( 1 , 10 ): for j in range ( 1 ,i + 1 ): print ( '%s*%s=%s' % (i,j,i * j),end = ' ' ) print () |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 打印金字塔 # 分析 ''' #max_level=5 * # current_level=1,空格数=4,*号数=1 *** # current_level=2,空格数=3,*号数=3 ***** # current_level=3,空格数=2,*号数=5 ******* # current_level=4,空格数=1,*号数=7 ********* # current_level=5,空格数=0,*号数=9 # 数学表达式 空格数=max_level-current_level *号数=2*current_level-1 ''' # 实现: max_level = 5 for current_level in range ( 1 ,max_level + 1 ): for i in range (max_level - current_level): print ( ' ' ,end = '') #在一行中连续打印多个空格 for j in range ( 2 * current_level - 1 ): print ( '*' ,end = '') #在一行中连续打印多个空格 print () |