day6 双向循环及pass、break、continue的使用以及for循环
双向循环练习
1.打印10行10列的小星星(两个循环)
1 # j 外循环用来控制行数
2 j = 0
3 while j < 10:
4 # i 打印一行十个星星
5 i = 0
6 while i < 10:
7 # 写上循环的逻辑
8 print("*",end="")
9 i+=1
10 # 打印换行
11 print()
12
13 j+=1
2.打印10行10列小星星(隔列换色)
1 i = 0
2 while i < 10:
3 j=0
4 while j<10:
5 # 内部循环逻辑
6 if j%2==0:
7 print("★",end="")
8 else:
9 print("☆",end="")
10 j+=1
11 print()
12
13 i+=1
3.打印10行10列小星星(隔行换色)
1 """
2 外层循环动一次
3 内层循环动10次
4 外层循环动的慢
5 内层循环动的快
6 """
7 i = 0
8 while i<10:
9 # 打印隔列换色星星
10 j = 0
11 while j < 10:
12 # i 隔列换色
13 if i%2 == 0:
14 print("★",end="")
15 else:
16 print("☆",end="")
17 j+=1
18
19 # 打印换行
20 print()
21 i+=1
4.99乘法表
1 # i控制行
2 i=1
3 while i<=9:
4 # j控制列
5 j=1
6 while j<=i:
7 # 打印表达式
8 print("%d*%d=%2d " % (i,j,i*j),end="")
9 j+=1
10 # 打印换行
11 print()
12 i+=1
5.99乘法表反向
1 i=9 # 9*1 9*2 9*3 ....
2 while i>=1:
3 j=1
4 while j<=i:
5 print("%d*%d=%2d " % (i,j,i*j),end="")
6 j+=1
7 print()
8
9 i-=1
6.99乘法表空格正向
1 # ???如何打印在每行打印空格???
2 '''
3 第一行循环8组空格 8~1 是循环8组空格
4 第二行循环7组空格 7~1 是循环7组空格
5 ......
6 第八行循环1组空格 1 是循环1组空格
7 第九行 不需要空格 所以 k>0
8 '''
9 i = 1
10 while i<=9:
11
12 # 打印空格
13 k=9-i
14 while k>0:
15 print(" " , end="")
16 k-=1
17 # 打印表达式
18 j=1
19 while j<=i:
20 print("%d*%d=%2d " % (i,j,i*j),end="")
21 j+=1
22
23 print()
24
25 i+=1
7.99乘法表空格反向
1 i=9
2 while i<=1:
3 # 打印空格
4 k = 9-i
5 while k>0:
6 print(" " , end="")
7 k-=1
8 # 打印表达式
9 j=1
10 while j<=i:
11 print("%d*%d=%2d " % (i,j,i*j),end="")
12 j+=1
13 print()
14 i-=1
8.吉利数(方法一)
1 ''' 2 得到个位: 123%10=3 3 得到十位:123//10%10=2 4 得到百位:123//100=1 5 ''' 6 i = 100 7 while i < 1000: 8 gewei = i%10 9 shiwei = i//10%10 10 baiwei = i//100 11 # 111 222......888 999 12 if gewei == shiwei and shiwei == baiwei: 13 print(i) 14 # 123 234......678 789 15 elif shiwei == gewei-1 and shiwei == baiwei+1: 16 print(i) 17 # 987 876......432 321 18 elif shiwei == gewei+1 and shiwei == baiwei-1: 19 print(i) 20 i+=1 21
9.吉利数(方法二)
1 i = 100 2 while i <1000: 3 strvar=str(i) 4 baiwei = int(strvar[0]) 5 shiwei = int(strvar[1]) 6 gewei = int(strvar[2]) 7 if gewei == shiwei and shiwei == baiwei: 8 print(i) 9 elif shiwei == gewei-1 and shiwei == baiwei+1: 10 print(i) 11 elif shiwei == gewei+1 and shiwei == baiwei-1: 12 print(i) 13 i+=1
10.百钱买百鸡
1 '''
2 公鸡x 母鸡y 小鸡z
3 公鸡1块钱1只,母鸡3块钱一只,小鸡5毛钱一只
4 问: 用100块钱买100只鸡,有多少种买法?
5 """
6 """
7 穷举法:把数拿出来,一个一个试
8 x{1,2}
9 y{3,4}
10 z{5,6}
11 x+y+z = 10 列出来
12 1+3+5 = 9 不要
13 1+3+6 = 10 要
14 1+4+5 = 10 要
15 1+4+6 = 11 不要
16
17 2 + 3 + 5 = 10 要
18 2 + 3 + 6 = 11 不要
19 2 + 4 + 5 = 11 不要
20 2 + 4 + 6 = 12 不要
21 """
22
23 """
24 # 两个条件同时满足
25 x+y+z = 100
26 x*1 + y*3 + z*0.5 = 100
27 '''
28
29 count = 0
30 x = 0
31 # 公鸡
32 while x <=100:
33 # 母鸡
34 y = 0
35 while y <=33:
36 # 小鸡
37 z = 0
38 while z <=100:
39 if x+y+z == 100 and x*1 + y*3 + z*0.5 == 100:
40 count += 1
41 print(x,y,z)
42 z+=1
43 y+=1
44 x+=1
45
46 print(count)
-------------------------------------------------------------------------------------------------------------
关键字:pass,break,continue
1.pass 过 占位
2.break 终止当前循环
注意的是!!!终止的是当前循环!!!
1 i = 1 2 while i <= 3: 3 j = 1 4 while j <= 3: 5 if j == 2: 6 break 7 print(i,j) 8 j += 1 9 i += 1 10 # 输出(1,1)(2,1)(3,1) 11 # 只终止了while j <= 3这个内层循环,并没有终止while i <= 3这个外层循环
3.continue 跳过当前循环,从下一次循环开始
1 # 打印1~10 跳过8 2 i = 1 3 while i <= 10: 4 5 if i == 8: 6 # 需手动自增加1. 当执行continue时,后面的代码不执行,跳到while循环的条件判断处,会造成死循环 7 i += 1 8 continue 9 print(i) 10 i += 1
----------------------------------------------------------------------------------------------------------
for循环
遍历 == 循环 == 迭代
1.for循环和while循环的区别
for主要用于遍历数据
while在遍历数据时,有局限性
2.for循环格式:
for 变量 in 可迭代对象:
code1
code2
可迭代对象(容器类型数据,range对象,迭代器)
3.for循环可以遍历字符串,集合,列表,元组,字典。其中遍历字典时是遍历字典的key。
4.遍历不等长的二级容器
1 # 用嵌套for循环来遍历不等长的二级容器
2 container = [["6.6","YiNuo","Ice"],("JiuC","JiuLong")]
3 for i in container:
4 for j in i:
5 print(j)
5.遍历等长的二级容器
1 # 等长的二级容器每个里面都是3个元素,分别用a,b,c接收它们
2 container = [("Mike","Alan","Rick") , ("Linda","Nike","Bruth") , ("556","762","994") ]
3 for a,b,c in container:
4 print(a,b,c)
6.range对象
range(开始值,结束值,步长)
结束值本身取不到,取到结束值之前的那个数
1 # 只有一个值 0~5 2 for i in range(6): 3 print(i) # 0,1,2,3,4,5 4 5 # 只有两个值 6 for i in range(3,8): 7 print(i) # 3,4,5,6,7 8 9 # 只有三个值 10 for i in range(1,10,3): 11 print(i) # 1,4,7 12 13 # 倒序打印5 ~ 1 14 for i in range(5,0,-1): 15 print(i) # 5,4,3,2,1
7.关于while循环和for循环适用场景的总结
while循环:较为复杂的逻辑
for循环:数据的遍历
while和for部分代码可以互相转换
8.while循环代码和for循环代码的相互转换
1 i = 1
2 while i <= 9:
3 j = 1
4 while j<=i:
5 print("%d*%d=%2d " % (i,j,i*j),end="")
6 j+=1
7 print()
8 i+=1
9
10
11 for i in range(1,10):
12 for j in range(1,i+1):
13 print("%d*%d=%2d " % (i,j,i*j),end="")
14 print()


浙公网安备 33010602011771号