第009讲:了不起的分支和循环3 | 学习记录(小甲鱼零基础入门学习Python)

(标答出处: 鱼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)
break
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)

猜你喜欢

转载自blog.csdn.net/qq_38970783/article/details/84108737