课上总结:
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
- 编写一个程序,求 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等,提高效率 **