第009讲:了不起的分支和循环3
(标答出处: 鱼C论坛)
《零基础入门学习Python》
基础题:
0、下面的循环会打印多少次"I Love FishC"?
for i in range(0, 10, 2):
print(‘I Love FishC’)
(0,2,4,6,8)共5次
1、下面的循环会打印多少次"I Love FishC"?
for i in 5:
print(‘I Love FishC’)
会报错。因为i是字符串,而5是整型数字,两者不能使用in这个成员函数,
应该为for I in range (1,6) , 这样会打印5次
2、回顾一下 break 和 continue 在循环中起到的作用?
break直接跳出循环,而continue是跳过这次的循环,继续下次
3、请问 range(10) 生成哪些数?
(0,1,2,3,4,5,6,7,8,9)
4、目测以下程序会打印什么?
while True:
while True:
break;
print(1)
print(2)
break;
print(3)
会打印出
2
3
因为第一个print (1)是在break之后,而那个时候已经由break跳出循环了所以不会接着执行在他之后的print (1)。
5、什么情况下我们要使循环永远为真?
没有限制条件,但是要无限次输入东西
6、【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?
i = 0
string = ‘ILoveFishC.com’
while i < len(string)):
print(i)
i += 1
string = 'ILoveFishC.com'
i=len(string)
while i>0 :
print (i)
i-=1
动动手:
1、设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
mima = 'FishC.com'
i = 3
while i>0 :
temp = input ("请输入密码:")
if temp != mima :
print('密码输入错误!您还有',i-1,"次机会!")
i-=1
else :
print ("密码输入正确,进入程序......")
break ;
2、编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
mylist = []
for i in range (100,1000) :
mylist = str(i)
a = int (mylist[0])
b = int (mylist[1])
c = int (mylist[2])
if ( i == (a**3+b**3+c**3) ) :
print (i)
3、三色球问题
有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
print ("red \tyellow \t green")
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、下面的循环会打印多少次"I Love FishC"?
for i in range(0, 10, 2):
print(‘I Love FishC’)
0,2,4,6,8,会打印5次
1、下面的循环会打印多少次"I Love FishC"?
for i in 5:
print(‘I Love FishC’)
会报错 ,语法错误,in 是成员运算符,后面跟序列:列表或字符串等
2、回顾一下 break 和 continue 在循环中起到的作用?
break:跳出循环,不再执行else; continue:结束本轮循环立即进入下一次循环
3、请谈下你对列表的理解?
功能变强的数组
4、请问 range(10) 生成哪些数?
0,1,2,3,4,5,6,7,8,9
5、目测以下程序会打印什么?
while True :
while True :
break
print(1)
print(2)
print(3)
打印 2
3
6、什么情况下我们要使循环永远为真?
程序中从头运行到尾的代码
需要一直等待用户输入命令时,需要用户重复输入时
7、【学会提高代码的效率】你的觉得以下代码效率方面怎样?有没有办法可以大幅度改进(仍然使用while)?细节决定成败,看答案前记得自己先敲代码!
i = 0
string = ‘ILoveFishC.com’
while i < len(string)):
print(i)
i += 1
答:
i=0
length=len(‘ILoveFishC.com’)
while i < length:
print(i)
i+=1
8、设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
程序演示如图:
9、编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数。
i=100
while i <= 999:
a=i//100
b=i%100//10
c=i%10
if i==(a3+b3+c**3):
print(i)
i+=1
三色球问题
有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
print(‘red\tyellow\tblue’)
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)