小甲鱼了不起的分支循环8.3总结反思

课上总结:

for i in range (10):
    if i%2 != 0:
        print (i)
        continue
 #这里continue作用是当if条件成立,则输出i以后直接开始下一次循环,而不会i加2       
    i += 2
    print (i)

5. 目测以下程序会打印什么?

while True:
    while True:
        break
        #这个while循环因为break跳出,所以1不打印
        print(1)
    print(2)
    break
print(3)

会打 1
     2 

7. 【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?

i = 0
string = 'ILoveFishC.com'
while i < len(string)):
    print(i)
    i += 1
  #这个程序问题是重复使用len()函数,从而提高工作量
  改进::;
  i = 0
string = 'ILoveFishC.com'
length = len(string)
#将string的长度赋值,在比较,这样只会使用一次len()函数
while i < length:
    print(i)
    i += 1  

编程题:
0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。

number='luo'
count = 3
while count :
#第二次遇到这种,使用while时可以直接while + 变量,然后随着变量递减到0则可以跳出
    key = input('请输入您的密码:')
    #放在这里输入可以使得每次循环开头都直接input,而且每次continue回来都会重新输入,逻辑就非常顺畅
    if number == key:
        print ("恭喜,密码正确")
        break
        #break是跳出本循环外的那个循环
    elif '*' in key:
    #in 做检查作用!且elif是if不成立时继续
        print('密码中不能含有"*"号!您还有',count,'次机会!',end='')
        continue
        #同break,是跳出一级重新继续大循环
    else:
        print ('密码错误,您还有',count-1,'次机会请重新输入!',end='')
        #注意   '密码错误,您还有',count-1,'次机会请重新输入!',end=''中首先是打印字符‘’用引号,然后,count-1,因为count是变量不能加引号,才能得到变量计算的值,然后在引号‘’将剩下的次重新输入写完
    count -= 1     

  1. 编写一个程序,求 100~999 之间的所有水仙花数。
    如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
for i in range(10,1000):
#range函数运用于一个范围内,和for狼狈为奸,从而一个一个抽取函数
    sum =0
    temp=i
    while temp:
        sum =sum + (temp % 10)**3
        temp //= 10
#设计巧妙,首先利用除10的余数以及while循环(0时结束!第三次遇到了!)
#其次利用浮点计算,从而到十位,百位
    if sum==i:
 #!!!!!一定注意,为什么要用temp = i,是因为要对temp进行处理,从而最后赋值并不是这个,而i是没变的,最后这里所以用i = sum,temp的作用相当于替代i进行一系列处理
        print(i)

2. 三色球问题
有红、黄、绿三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。

print('red\tyellow\tgreen')
for red in range(0,4):
    for yellow in range(0,4):
         for green in range(2,7):
  #这里用二到七的原因是绿色至少倆,不然不可能总共八个!
 if red+yellow+green==8:
     print(red,'\t',yellow,'\t',green)
     #!!!和编程题0一样,red是直接输出变量值,而\t是输出一个符号,需要用引号,而这两个值之间需要用逗号隔开!

**总结:1.break,continue是终止或者继续本循环外的大循环相当于外面的外面一层
2.while count,这种,直接可以作为循环条件,再配上一系列能到0的操作从而跳出循环
3.注意print时字符和变量输出混用,需要用逗号隔开
4.\t意思是隔四个字符
5. ‘*’ in key 可以检查当中有没有想要的字符 *
6. len(asdasda)表示字符长度,最好可以赋值铬另外的变量,从而可以提高编效率
7. 余数可以用来提取末位上的数,浮点算法可以用与将个十百千逐次变成末位
8.range 和 for 狼狈为奸!注意组合使用,相当于一个一个提取变量,可以节约定义一个循环变量以及用while等,提高效率 **

发布了17 篇原创文章 · 获赞 1 · 访问量 364

猜你喜欢

转载自blog.csdn.net/cccccccaaaaaaaaa/article/details/105199233
今日推荐