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 = 2 3 j=0 while j<10 5 内部循环逻辑 6 if j%2==0: 7 ★else 9 ☆10 j+=1 13 i+=1 3.打印10行10列小星星(隔行换色) 1 """ 2 外层循环动一次 3 内层循环动10次 4 外层循环动的慢 5 内层循环动的快 6 7 i = 8 while i<10 9 打印隔列换色星星 10 j =12 i 隔列换色 13 if i%2 == 0: 14 15 16 17 j+=1 18 19 20 21 i+=1 4.99乘法表 i控制行 2 i=1 while i<=9 j控制列 5 j=1 while j<=i: 打印表达式 %d*%d=%2d " % (i,j,i*j),1)"> 9 j+=1 12 i+=1 5.99乘法表反向 1 i=9 9*1 9*2 9*3 .... 2 while i>=13 j=1 4 5 6 j+=1 7 8 9 i-=1 6.99乘法表空格正向 ???如何打印在每行打印空格??? ''' 第一行循环8组空格 8~1 是循环8组空格 第二行循环7组空格 7~1 是循环7组空格 ...... 第八行循环1组空格 1 是循环1组空格 7 第九行 不需要空格 所以 k>0 8 9 i = 1 10 11 12 打印空格 13 k=9-i 14 while k>" 16 k-=1 17 打印表达式 18 j=1 20 21 j+=1 22 23 24 25 i+=1 7.99乘法表空格反向 1 i=9 while i<=1 3 4 k = 9- 5 7 k-=1 8 9 j=1 11 12 j+=1 13 14 i-=1 8.吉利数(方法一) 得到个位: 123%10=3 得到十位:123//10%10=2 得到百位:123//100=1 6 i = 100 7 while i < 1000 8 gewei = i%10 9 shiwei = i//10%10 10 baiwei = i//100 111 222......888 999 if gewei == shiwei and shiwei == baiwei: (i) 123 234......678 789 15 elif shiwei == gewei-1 and shiwei == baiwei+116 (i) 987 876......432 321 18 elif shiwei == gewei+1 and shiwei == baiwei-119 20 i+=1 21 9.吉利数(方法二) 1 i = 100 while i <1000 3 strvar=str(i) 4 baiwei = int(strvar[0]) 5 shiwei = int(strvar[1]) 6 gewei = int(strvar[2 7 10 13 i+=1 10.百钱买百鸡 公鸡x 母鸡y 小鸡z 公鸡1块钱1只,母鸡3块钱一只,小鸡5毛钱一只 问: 用100块钱买100只鸡,有多少种买法? """ 穷举法:把数拿出来,一个一个试 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 =30 x =31 公鸡 32 while x <=10033 母鸡 34 y =35 while y <=3336 小鸡 37 z =38 while z <=10039 if x+y+z == 100 and x*1 + y*3 + z*0.5 == 10040 count += 1 41 (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 while i <= 3 3 j = 1 while j <= 3if j == 2 6 break (i,j) 8 j += 1 9 i += 1 输出(1,1)(2,1)(3,1) 11 只终止了while j <= 3这个内层循环,并没有终止while i <= 3这个外层循环 3.continue 跳过当前循环,从下一次循环开始 打印1~10 跳过8 2 i = 1 while i <= 10 4 if i == 8 需手动自增加1. 当执行continue时,后面的代码不执行,跳到while循环的条件判断处,会造成死循环 7 i += 1 continue 10 i += 1 ---------------------------------------------------------------------------------------------------------- for循环 遍历 == 循环 == 迭代 1.for循环和while循环的区别 for主要用于遍历数据 2.for循环格式: for 变量 in 可迭代对象: 3.for循环可以遍历字符串,集合,列表,元组,字典。其中遍历字典时是遍历字典的key。 4.遍历不等长的二级容器 1 用嵌套for循环来遍历不等长的二级容器 2 container = [[6.6YiNuoIce"],(JiuCJiuLong")] 3 for i in container: for j i: print(j) 5.遍历等长的二级容器 等长的二级容器每个里面都是3个元素,分别用a,b,c接收它们 2 container = [(MikeAlanRick"),1)">LindaNikeBruth556762994) ] for a,c print(a,c) 6.range对象 range(开始值,结束值,步长) 只有一个值 0~5 in range(6): print(i) 0,1,2,3,4,5 5 只有两个值 6 in range(3,8 3,5,6,7 8 9 只有三个值 in range(1,10,3print(i) 1,1)">12 13 倒序打印5 ~ 1 14 in range(5,-1 5,1 7.关于while循环和for循环适用场景的总结 while循环:较为复杂的逻辑 8.while循环代码和for循环代码的相互转换 while i <= 9 6 j+=1 8 i+=1 9 10 () 15 ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |