(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦)
P5 改进我们的小游戏
一、笔记
1.更改最初的小游戏,增加提示
- 使用条件分支,条件分支语法:
if 条件: 条件为真(True)执行的操作 else: 条件为假(False)执行的操作
- wordgame_2
print('wordgame_2') temp = input('猜一个数字:') guss = int(temp) if guss == 8: print('对啦') print('不过没奖励!') else: if guss > 8: print('大啦大啦') else: print('小啦小啦') print('游戏结束')
2.加入提示并提供多次机会
- 使用 while 循环,while 循环语法:
while 条件: 条件为真(True)执行的操作
- wordgame_3
print('wordgame_3') temp = input('猜一个数字:') guss = int(temp) while guss != 8: temp = input('再猜猜吧:') guss = int(temp) if guss == 8: print('对啦') print('不过没奖励!') else: if guss > 8: print('大啦大啦') else: print('小啦小啦') print('游戏结束')
3.使每次运行程序产生的答案都是随机的
- 使用random 模块中的 randint() 函数,该函数会返回一个随机的整数,使用规则
#使用 import 引入模块 import random #调用模块中的函数格式必须是模块名.函数名 sercet = random.randint(1,10)
- wordgame_4
import random sercet = random.randint(1,10) print('wordgame_4') temp = input('猜一个数字:') guss = int(temp) while guss != sercet: temp = input('再猜猜吧:') guss = int(temp) if guss == sercet: print('对啦') print('不过没奖励!') else: if guss > sercet: print('大啦大啦') else: print('小啦小啦') print('游戏结束')
4.比较运算符比逻辑运算符优先级更高
5.使用and逻辑运算符,可以将任何表达式连接在一起,并得到一个布尔类型的值,如:
>>>(1<3) and (3>2) True
6.print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行,如:
print("猜数字:", end=" ")
二、课后作业
0. 请问以下代码会打印多少次“我爱鱼C!”
while 'C':
print('我爱鱼C!')
无限次,因为自动判断条件为真,会无限循环
1. 请问以下代码会打印多少次“我爱鱼C!”
i = 10
while i:
print('我爱鱼C!')
i = i - 1
10次,在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了 __ nonzero __ () 或 __ len __ ()方法且方法返回0或False,则其实例也被当作False,其他对象均为True
2. 请写出与 10 < cost < 50 等价的表达式
(10 < cost) and (cost < 50)
3.Python3 中,一行可以书写多个语句吗?
可以,使用分号分隔开,如: >>>print(‘i LOVE’);print(‘you’)
4. Python3 中,一个语句可以分成多行书写吗?
可以,用反斜杠\,或者使用括号分解成几行,如: >>> print('i love \ you ') >>> i love you >>> ( 4>3 and 5>4 ) >>> true
5. 请问Python的and操作符 和C语言的&&操作符 有何不同?【该题针对有C或C++基础的朋友】
6. 听说过“短路逻辑(short-circuit logic)”吗?
逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。 这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符,这个后边的课程小甲鱼会讲到,不急。 实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值(例子参考楼上那题)。
三、动动手
0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
- 参考答案
import random times = 3 secret = random.randint(1,10) print('------------------我爱鱼C工作室------------------') # 这里先给guess赋值(赋一个绝对不等于secret的值) guess = 0 # print()默认是打印完字符串会自动添加一个换行符,end=" "参数告诉print()用空格代替换行 # 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ"? print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ") while (guess != secret) and (times > 0): temp = input() guess = int(temp) times = times - 1 # 用户每输入一次,可用机会就-1 if guess == secret: print("我草,你是小甲鱼心里的蛔虫吗?!") print("哼,猜中了也没有奖励!") else: if guess > secret: print("哥,大了大了~~~") else: print("嘿,小了,小了~~~") if times > 0: print("再试一次吧:", end=" ") else: print("机会用光咯T_T") print("游戏结束,不玩啦^_^")
- 我的答案
import random secret = random.randint(1,10) print("猜数字") number = input("输入数字:") guess = int(number) n = 3 while (guess != secret) and (n > 1): if guess > secret: print("大了") else: print("小了") n = n - 1 number = input("输入数字:") guess = int(number) if guess == secret: print("对了,游戏结束") else: print("机会没了,游戏结束")
1.尝试写代码实现以下截图功能:
- 参考答案
temp = input('请输入一个整数:') number = int(temp) i = 1 while number: print(i) i = i + 1 number = number - 1
- 我的答案
temp = input("请输入一个整数:") number = int(temp) i = 1 while i <= number: print(i) i = i + 1
2. 尝试写代码实现以下截图功能:
- 参考答案
temp = input('请输入一个整数:') number = int(temp) while number: i = number - 1 while i: print(' ', end = '') i = i - 1 j = number while j: print('*', end = '') j = j - 1 print() number = number - 1
- 我的答案
temp = input("请输入一个整数:") number = int(temp) i = 1 while number > 0: print(" " * (number - 1) + "*" * number) number = number - 1