欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第009讲:了不起的分支和循环3

程序员文章站 2022-05-28 16:11:41
...

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