[Python]小甲鱼Python视频第009课(了不起的分支和循环3)课后题及参考解答

# -*- coding: utf-8 -*-
"""
Created on Mon Mar  4 23:47:51 2019

@author: fengs
"""


"""
测试题:

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')
    
    //1次 ---->会报错

2.回顾一下 break 和 continue 在循环中起到的作用?
    break:跳出本层循环
    continue:提前结束本次循环,开始下次循环条件判断

3.请谈下你对列表的理解?
    a.元素可变;
    b.元素类型可任意
    
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
    
    
动动手:
0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
1. 编写一个程序,求 100~999 之间的所有水仙花数。
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数

三色球问题
  
有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。

3. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
    额

"""


#测试题7
i = 0
string = 'ILoveFishC.com'
length = len(string);#len只被调用一次
while i < length:
    print(i)
    i += 1

#动动手0
max_times = 3;
password = '123456';
input_times = 0;
while True:
    input_times += 1;
    temp_str = input("请输入密码:");
    if password == temp_str:
        print('密码正确!');
        break;
    elif '*' in temp_str:
        print("密码中不能含有'*'!,您还有",max_times-input_times,'次机会');
    else:
        print("密码不正确!,您还有",max_times-input_times,'次机会');
    if input_times == max_times:
        print('已经到达最大错误次数');
        break;

#动动手1
num = 100;
max_value = 999;
while True:
    sum_value = 0;
    
    sum_value += (num%10)**3;
    sum_value += ((num//10)%10)**3;
    sum_value += ((num//100)%10)**3;
    if sum_value == num:
        print(num);
    
    num +=1;
    if num > max_value:
        break;
        
#动动手2
#有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。

for num_red in range(4):
    for num_yellow in range(4):
        for num_green in range():
            if num_red + num_yellow + num_green == 8:
                print('%d个红球,%d个黄球,%d个绿球' % (num_red,num_yellow,num_green));

  

posted @ 2019-03-05 00:17  Alimy  阅读(736)  评论(0编辑  收藏  举报