测试题:
0. 下面的循环会打印多少次”I love FishC”?
for i in range(0,10, 2):
print(‘I LoveFishC‘)
答:for I in range(0,10,2)打印的I 的值为:0,2,4,6,8
所以打印5次I love FishC
1. 下面的循环会打印多少次”I love FishC”?
for i in 5:
print(‘I Love FishC‘)
答:0次,会报错
2. 回顾一下break和continue在循环中起到的作用?
答:break是跳出整个循环,continue是跳出本次循环。
3. 请谈一下你对列表的理解?
答:
(1).列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
(2).列表的数据项不需要具有相同的类型。
(3).创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
4. 请问range(10)生产那些数?
答:会生产0,1,2,3,4,5,6,7,8,9 list(range(0,10))
5. 目测以下程序会打印什么?
while True:
while True:
break
print(1)
print(2)
break
print(3)
答:2和3
6. 什么情况下我们要使循环永远为真?
答:同样用于游戏实现,因为游戏只要运行着,就要时刻接受用户输入,因此使用永远为真确保游戏在线。
7. 你觉得以下代码效率怎样?有没有办法可以大幅改进(扔然使用while)?
i = 0
string =‘abc.com‘
while i <len(string):
print(i)
i += 1
答:
#!/usr/bin/envpython
i = 0
string =‘abc.com‘
for i in range(i,len(string)):
print(i)
动动手:
0. 设计一个用户验证密码程序,用户只有三次机会输入错误,不过如果用户输入的内容包含*则不计算在内?
#!/usr/local/bin/python3
#_*_coding:utf-8_*_
bingo= ‘abk.com‘
i = 1
a ="*"
answer= input(‘请输入密码:‘)
whileTrue:
if answer == bingo:
print("密码正确,进入程序。。。。")
break
elif ( a in answer ):
answer = input("密码中不能含有‘*‘号!您还有三次机会!请重新输入密码:")
continue
while True:
if i < 3:
answer = input("密码输入错误!您还有 %s 次机会!请重新输入密码:" %(3 - i) )
if answer != bingo:
i += 1
continue
else:
print("密码正确,进入程序。。。。")
else:
print("三次输入错误,退出程序。")
break
break
1. 编写一个程序,求100到999之间的所有水仙花数。
(如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153=1^3+5^3+3^3,因此153就是一个水仙花数)
答:
#!/usr/local/bin/python3
#_*_coding:utf-8_*_
for iin range(100,1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10)**3
temp//=10
if sum == i:
print(i)
2. 三色球问题
有红,黄,蓝三种颜色的球,其中红球3个,黄球3个,绿球6个。先将这12个球混合放在一个盒子中,从中任意摸出8个球,编程计算摸出球的各种颜色搭配。
答:
print(‘red\tyellow\tgreen‘)
forred 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)