此日记只为了方便自己复盘,如有涉及版权问题,归小甲鱼官方所有。
测试题
0. 下面的循环会打印多少次"I Love FishC"?
for i in range(0,10,2):
print('I Love FishC')
答0:会打印5次。从0开始到9结算,每隔2步输出一次(0,2,4,6,8)
1. 下面的循环会打印多少次"I Love FishC"?
for i in 5:
print('I Love FishC')
答1:会报错。
2. 回顾一下 break 和 continue 在循环中起到的作用?
答2:break是直接终止循环,执行循环之外德语句。
continue是终止本次程序并开始下一次循环,弱检测条件为真,则开始下一次循环,若条件不符合则跳出本次循环,进入下一个语句。
3. 请谈下你对列表的理解?
答3:列表:可以容纳多个数字、文本。
4. 请问 range(10) 生成哪些数?
答4:0、1、2、3、4、5、6、7、8、9
5. 目测以下程序会打印什么?
whileTrue:
whileTrue:
break
print(1)
print(2)
break
print(3)
答5:打印2\n 3,因为第一个break直接跳出本身的循环,所以1直接跳过了。
6. 什么情况下我们要使循环永远为真?
答6:当内部循环执行完毕后继续执行本次循环语句。
7. 【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?
i=0
string='ILoveFishC.com'
while i<len(string)):
print(i)
i+=1
答7:原来程序中len(string)在每次循环都要保存一次,所以先把冷len(string)保存好再循环,再计算机运行时就少了一步。
i = 0
string = 'ILoveFishC.com'
x = len(string)
while i < x:
print(i)
i + = 1
动动手
0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
答0:
max_times =3
password ='123456'
input_times =0
while True:
input_times += 1
temp = input("请输入密码:")
if password == temp:
print('欢迎来到未来世界!')
break
elif '*' in temp :
print("输入内容不能包含'*'!,您还有",max_times - input_times,'次机会')
else:
print("密码不正确!您还有",max_times - input_times,'次机会')
if input_times == max_times:
print('机会已用完!!!')
break
小甲鱼 的 密码程序:
count = 3
password = 'FishC.com'
while count:
passwd = input('请输入密码:')
if passwd == password:
print('密码正确,进入程序......')
break
elif '*' in passwd:
print('密码中不能含有"*"号!您还有', count, '次机会!', end=' ') #这里print()语句中要str格式和int格式共存,
#内容需要用逗号隔开
continue
else:
print('密码输入错误!您还有', count-1, '次机会!', end=' ')
count -= 1
————————————————
1. 编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
答1:
num = 100
max_num = 999
while True:
sum_num = 0
sum_num += (num%10)**3
sum_num += ((num//10)%10)**3
sum_num += ((num//100)%10)**3
if sum_num == num:
print(num)
num += 1
if num > max_num:
break
2. 三色球问题
有红、黄、绿三种颜色的球,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
答2:
for red in range(4):
for yellow in range(4):
for green in range(8):
if red + yellow + green == 8:
print('%d个红球,%d个黄球,%d个绿球' % (red, yellow, green))
3.请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
答3:
1、while 条件(为真的情况下):
循环内容
2、for 目标 in 表达式:
循环内容
按顺序逐个打印
3、number = ['xx', 'xx', 'xx']
4、len()是打印字符数量的意思。例如:
number = ['阳光男孩‘, '痞痞的靓仔', '大眼美女']
print(number, len(number))
打印输出:
阳光男孩 4
痞痞的靓仔 5
大眼美女 4
5、range([star,] stop[,step=1])是for循环的小伙伴
6、break终止当前循环并跳出当前循环体,continue终止当前循环并继续当前循环体