本文共 3530 字,大约阅读时间需要 11 分钟。
循环结构的第二种实现方式是for循环,for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁
for
能做的事情,while
循环都可以做for
循环是因为在特定的时候for
循环更简洁, 比如:循环取值可迭代对象目前理解为包含多个值的类型运行原理:从可迭代对象中取出一个值给变量名,执行下面代码,然后又取出第二的值...直到值取完for [变量名] in [可迭代对象]: # 此时只需知道可迭代对象可以是字符串\列表\字典,我们之后会专门讲解可迭代对象 代码1 代码2 代码3 ....#例1for item in ['a','b','c']: print(item)# 运行结果abc# 参照例1来介绍for循环的运行步骤# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码# 步骤3: 重复以上过程直到列表中的值读尽
strr = "shawn is man"for i in strr: print(i)
li = [111,222,333,444]for i in li: print(i)
案例一:打印数字0-5
# 简单版:for循环的实现方式for count in range(6): # range(6)会产生从0-5这6个数 print(count)# 复杂版:while循环的实现方式count = 0while count < 6: print(count) count += 1
dic = { "name":"shawn","age":22}for i in dic: print(i,dic[i]) # name shawn age 22
案例二:遍历字典
# 简单版:for循环的实现方式for k in { 'name':'jason','age':18,'gender':'male'}: # for 循环默认取的是字典的key赋值给变量名k print(k)# 复杂版:while循环确实可以遍历字典,后续将会迭代器部分详细介绍
break
: 立刻终止本层循环for i in range(5): if i == 3: continue print(i) # 0, 1, 2, 4
# 指定结尾,默认从"0"开始,到"4"结束,顾头不顾尾for i in range(5) print(i) #0,1,2,3,4 # 指定开头和结尾,顾头不顾尾"1~4"for i in range(1,5) print(i) #1,2,3,4 # 指定开头结尾和步长,顾头不顾尾for i in range(1,8,2) print(i) #1,3,5,7 (也就是每两个取第一个)
l = [111,222,333,444,555]for i in range(len(l)): print(f"{i}:{l[i]}"# 0:111# 1:222# 2:333# 3:444# 4:555
for [外层变量名] in [外层循环条件/次数(假设3)]: print("我是外层循环输出") for [里层变量名] in [里层循环条件/次数(假设4)]: print("我是里层循环输出")?以上伪代码示例,外层"3"次循环,里层"4"次循环?外层循环"1"次,里层循环"4"次,循环完进行外层的第二次循环?最终外层循环完"3"次,那么里层就一共循环了"12"次
# 分析'''#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=5for 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()
for i in range(1,10): for j in range(1,i+1): print('%s*%s=%s' %(i,j,i*j),end=' ') print()# 1*1=1 # 1*2=2 2*2=4 # 1*3=3 2*3=6 3*3=9 # 1*4=4 2*4=8 3*4=12 4*4=16 # 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 # 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 # 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 # 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 # 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
转载地址:http://flto.baihongyu.com/