测试题
0.下面的循环会打印多少次
for i in range(0, 10, 2):
print('I love FishC')
5次。range(0, 10, 2)得到[0,2,4,6,8],总共5次。
1. 下面的循环会打印多少次“I Love FishC”?
for i in 5:
print('I Love FishC')
会报错。in是成员运算符。
2.回顾一下break和continue在循环中提到的作用?
break是跳出循环,continue是中止本次循环,进入下次循环。
3.请谈下你对列表的理解?
下节补充。
4.请问range(10)生成哪些数?
会生成range(0,10)
>>> list(range(0,10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
5.目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
print(3)
打印2,3。第一个break跳过print(1),跳到print(2);第二个break跳出第2个while循环,跳到print(3)。
6.什么情况下我们要使循环永远为真?
一些需要一直执行的程序,如游戏实现,因为游戏只要运行着,就需要时刻接收用户输入,因此使用永远为真确保游戏“在线”。
7.【学会提高代码的效率】你觉得以下代码效率方面怎样?有没有办法可以大幅度改进(任然使用while)?
i = 0
string = 'ILoveFishC.com'
while i < len(string):
print(i)
i += 1
改进后,主要是不用每次循环都调用len函数。
i = 0
string = 'ILoveFishC.com'
length = len(string)
while i < length:
print(i)
i += 1
动动手
0.设计一个验证用户密码程序,用户只有三次机会输入错误密码,不过如果用户输入的内容包含“*”则不计算在内。
count = 3
password = 'allen'
while count > 0:
number = input('请输入密码:')
if number == password:
print('密码正确!')
break
elif '*' in number:
print('密码中不能含有"*"号!您还有' + count + '次机会!')
continue
else:
print('输入密码有误!您还有' + (count-1) + '次机会!')
count -= 1
1.编写一个程序,求100~999之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
for i in range(100,1000):
baiwei = i//100
shiwei = (i - 100*baiwei)//10
gewei = i%10
sum = baiwei**3 + shiwei**3 + gewei**3
if sum == i:
print(i)
153 370 371 407
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(0,7):
if red + yellow + green == 8:
print(red,'\t',yellow,'\t',green)
运行结果:
red yellow green
0 2 6
0 3 5
1 1 6
1 2 5
1 3 4
2 0 6
2 1 5
2 2 4
2 3 3
3 0 5
最后,我想推荐一下我的公众号,公号现在还没有内容,以后会慢慢的添加的,博客也会同步更新到公众号的。其实我是有私心的,就是想练一练写作能力,也希望关注我的读者也能和我一起成长。