[Python]小甲鱼Python视频第004课,改进我们的小游戏课后题及参考解答

# -*- coding: utf-8 -*-
"""
Created on Mon Mar  4 22:36:14 2019

@author: fengs
"""

"""
测试题:
0. 请问以下代码会打印多少次“我爱鱼C!”
while 'C':
    print('我爱鱼C!')

一直打印

1.请问以下代码会打印多少次“我爱鱼C!
i = 10
while i:
    print('我爱鱼C!')
    i = i - 1
    
打印10-1+1次,共计10次

2. 请写出与 10 < cost < 50 等价的表达式
    cost > 10 and cost < 50
    
3. Python3 中,一行可以书写多个语句吗?
    可以,用分号隔开即可
    
4. Python3 中,一个语句可以分成多行书写吗?
    可以,用反斜杠续行即可

5. 请问Python的 and 操作符 和C语言的 && 操作符 有何不同?【该题针对有C或C++基础的朋友】
    C/C++ 中的 && 返回的是逻辑值只会是0或者1;
    Python的and操作符也是逻辑运算,但结果未必是Ture 或者False,若布尔上下文的某个值为假,就返回第一个假值,若所有值为真就返回最后一个真值
6. 听说过“短路逻辑(short-circuit logic)”吗?
    a and b,若a已经为非真逻辑,就不在对b进行运算,直接判定表达式的值为a
    a or b,若a已经为真逻辑,就不再对b进行运算,直接判定表达式的值为b


动动手:
0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。

1. 尝试写代码实现以下截图功能:
    见楼下

2. 尝试写代码实现以下截图功能:
    见楼下


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


"""


#测试题:5,6
print(None and 1);
print([] and 1);
print([1] and [1,2,3]);

print(None or 1);
print([] or 1);
print([1] or [1,2,3]);

#动动手0
import random as rd;
max_times = 3;
secret = rd.randint(1,10);
user_input = 0;
guess_times = 0;
print('猜一猜:')
while True:
    guess_times += 1;
    user_input = int(input());
    if user_input == secret:
        print('猜中了,真厉害');
        break;
    else:
        if user_input > secret:
            print('输入较大');
        else:
            print('输入较小');
    if guess_times == max_times:
        print('次数已经用完');
        break;
    else:
        print('继续猜吧!');
print('游戏结束');


#动动手1
top = int(input('请输入一个整数:'));
for i in range(top):
    print(i+1);
    
    
#动动手2:
top = int(input('请输入一个整数:'));
while top:
    print(' '*top + '*'*top);
    top -= 1;