课后作业第四讲设置3次输入机会的代码可以这样改吗?
file:///C:/Users/29613/Desktop/%E6%8D%95%E8%8E%B7.PNG我不太明白guess和end的设置,所以按我自己的理解修改了一下,有人可以帮我看看这样修改是可以的嘛? 这是老师的:
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
guess = 0
print("不妨猜一下小甲鱼现在想的是哪一个数字:",end="")
while (guess != secret) and (times > 0):
temp = input()
guess = int(temp)
times = times - 1
if guess == secret:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
else:
if guess > secret:
print("猜大啦")
else:
print("猜小啦")
if times > 0:
print("再试一次吧:",end = "")
else:
print("机会用光啦")
print("游戏结束,不玩啦!")
这是我的:
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
guess = int(temp)
while (guess != secret) and (times>1):
temp = input("猜错了请重新输入吧:")
guess = int(temp)#如果把变量guess放在前面
times = times - 1
if guess == secret:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
else:
if guess > secret:
print("猜大啦")
else:
print("猜小啦")
if times > 0:
print("再试一次吧:",end = "")
else:
print("机会用光啦")
print("游戏结束,不玩啦!")
麻烦了!
fish鳞陨 发表于 2022-8-11 01:07
这是老师的:
import random
times = 3
给你的代码稍微调了一下顺序
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
guess = int(temp)
times = times - 1
while (guess != secret) and (times>0):
if guess == secret:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
else:
if guess > secret:
print("猜大啦")
else:
print("猜小啦")
temp = input("再试一次吧:")
guess = int(temp)#如果把变量guess放在前面
times = times - 1
if times <= 0:
print("机会用光啦")
print("游戏结束,不玩啦!") 本帖最后由 jackz007 于 2022-8-11 10:41 编辑
print() 加了 end = "" 选项后,完成打印后不会回车换行,考察下面的代码区别及对应的效果差异
【代码-1】:
print('ABC')
print('DEF')
print('GHI')
【效果-1】:
ABC
DEF
GHI
【代码-2】:
print('ABC' , end = '')
print('DEF' , end = '')
print('GHI')
【效果-2】:
ABCDEFGHI
跟小甲鱼所说代码相对比多一次input输入,所以修改下第二次input输入位置,跑出效果与小甲鱼基本一致
你的
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#多一次input输入
guess = int(temp)
while (guess != secret) and (times>1):
temp = input("猜错了请重新输入吧:")
guess = int(temp)#如果把变量guess放在前面
times = times - 1
if guess == secret:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
else:
if guess > secret:
print("猜大啦")
else:
print("猜小啦")
if times > 0:
print("再试一次吧:",end = "")
else:
print("机会用光啦")
print("游戏结束,不玩啦!")
修改后
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
guess = int(temp)
while (guess != secret) and (times>1):
guess = int(temp)#如果把变量guess放在前面
times = times - 1
if guess == secret:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
else:
if guess > secret:
print("猜大啦")
else:
print("猜小啦")
temp = input("猜错了请重新输入吧:")#改变输入位置
if times > 0:
print("再试一次吧:",end = "")
else:
print("机会用光啦")
print("游戏结束,不玩啦!")
你可以试试
本帖最后由 一点点儿 于 2022-8-11 14:19 编辑
这样修改的话有一些问题:
1.如果第一次就猜对不会打印 "你是小甲鱼肚子里的蛔虫吗?!" "哼,猜中了也没有奖励"
修改方案:在while循环后加上
if guess == secret:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
2.源代码这里
if times > 0:
print("再试一次吧:",end = "")
else:
print("机会用光啦")
判断条件应为 times > 1
3.第一次猜错不会提示猜大了还是猜小了,这里建议参考老师的代码
前2个问题修改后的代码如下:
import random
times = 3
secret = random.randint(1,10)
print('----------小甲鱼工作室-----------')
temp = input("不妨猜一下小甲鱼现在想的是哪一个数字:")#让用户随机输入一个数
guess = int(temp)
while (guess != secret) and (times>1):
temp = input("猜错了请重新输入吧:")
guess = int(temp)#如果把变量guess放在前面
times = times - 1
if guess == secret:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
else:
if guess > secret:
print("猜大啦")
else:
print("猜小啦")
if times > 1:
print("再试一次吧:",end = "")
else:
print("机会用光啦")
if times == 3:
print("你是小甲鱼肚子里的蛔虫吗?!")
print("哼,猜中了也没有奖励")
print("游戏结束,不玩啦!") jackz007 发表于 2022-8-11 10:32
print() 加了 end = "" 选项后,完成打印后不会回车换行,考察下面的代码区别及对应的效果差异
【 ...
好详细!现在明白了 非常感谢 一点点儿 发表于 2022-8-11 14:03
这样修改的话有一些问题:
1.如果第一次就猜对不会打印 "你是小甲鱼肚子里的蛔虫吗?!" "哼,猜中了 ...
重新跑了下确实出现了你说的情况,修改后就正常啦 非常感谢{:9_228:} 临时号 发表于 2022-8-11 01:32
给你的代码稍微调了一下顺序
我有一个问题想问您一下,就是while后是猜不对的情况,但是下面一句又是guess==secret,那如果一开始while后的条件不成立,是会直接跳过这个循环来到if这里吗?(不知道这么说能不能把我的疑问点讲明白orz) fish鳞陨 发表于 2022-8-11 14:54
我有一个问题想问您一下,就是while后是猜不对的情况,但是下面一句又是guess==secret,那如果一开始whil ...
会直接说游戏结束,不玩啦,不好意思,没考虑到这种情况
页:
[1]