第004讲 改进我们的小游戏
测试题:
- 请问以下代码会打印多少次“我爱鱼C!”
while 'C':
print('我爱鱼C!')
答:无数次,Ctrl+C可以强制停止。
- 请问以下代码会打印多少次“我爱鱼C!”
i = 10
while i:
print('我爱鱼C!')
i = i - 1
复制代码
答:会打印10次。
2. 请写出与 10 < cost < 50 等价的表达式
答:(10<cost) and (cost<50)
3. Python3 中,一行可以书写多个语句吗?
答:可以,用分号分开即可。
4. Python3 中,一个语句可以分成多行书写吗?
答:可以使用反斜杠 \ 或者( )分解成几行。
5. 请问Python的 and 操作符 和C语言的 && 操作符 有何不同?【该题针对有C或C++基础的朋友】
答:C语言中结果为真和假两种
Python里面1 and 3 结果为 3
- 听说过“短路逻辑(short-circuit logic)”吗?
优先级中not>and>or
答:逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。
这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符。
实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值。
动动手:
- 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
答:代码如下:可以更改times值为二,总机会为三。
import random
times = 3
secret = random.randint(1,10)
print("------------------我爱鱼c工作室------------------")
temp = input ("不妨猜一下小鱼现在心里想的是那个数字:")
guess = int(temp)
if guess == secret:
print("我去,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
else:
print("还可以尝试三次哦!")
while (guess != secret) and (times > 0):
times = times - 1
if guess > secret:
print("哥,大了大了~~")
else:
print("嘿,小了!小了!!")
temp = input ("哎呀,猜错啦,请重新输入吧:")
guess = int(temp)
if guess == secret:
print("太厉害了!")
print("我去,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
if (guess != secret) and (times < 1):
print("机会已经用完!")
print("游戏结束,不玩啦^_^")
- 尝试写代码实现以下截图功能:
答:
- 尝试写代码实现以下截图功能:
答:
temp = input("请输入一个整数:")
number = int(temp)
while number:
print(' '*(number+1)+'*'*number)
number = number -1
- 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
答:根据之前的小游戏优化
1、 猜错有提示
使用比较,提示答案大还是小,Python比较符:> >= < <= == !=
条件分支语法:if 条件:(注意后面有冒号) 条件为真(true)执行的操作
Else: 条件为假(false)执行的操作
2、 每运行一次程序,多次机会
While循环:Python的while循环语法:while 条件: 条件为真(true)执行的操作
限制次数:使用and逻辑操作符,Python的and可以将任意表达式连接在一起,并得到一个布尔类型的值。
3、 引入外援
Random模块:有一个函数 randint(),它会返回一个随机的整数
在程序前面导入import random
练习题(来自小甲鱼官方论坛)