|
发表于 2018-1-28 12:43:20
|
显示全部楼层
本帖最后由 ofey404 于 2018-1-28 12:46 编辑
显示再猜3次实际上猜4次的原因在原代码的第39行
time -= 1 这个语句不应该两个if判断语句共用, time -= 1 放在if语句(原代码40行)执行前的话就会多执行一次.
我觉得合理的用法应该是放在每个执行内容的末尾, 虽然需要打更多的字,但是更可靠.
另外我不是很懂你这句话的意思
"只要是最后一次输入结果,无论是否等于答案都会出现
“这都猜不中!辣鸡!
游戏结束!再见!”"
如果可以请解释一下,我在运行的时候并没有出现这种状况
# 另外我建议你去看一下求助帖的发帖标准,里面有说问题描述尽可能详尽, 你的标题我根本看不出要求助的是什么问题, 这会浪费你和答题者的时间.
下面是我修改了几处后的代码, 可以顺利运行, 解决了猜4次的问题, 猜到正确答案也能给出正确的回复.
- import random
- secret = random.randint(105,115)
- print('宇宙超级无敌老年肥胖猪!乌拉!!~~~')
- time = 3
- flag = 1
- secret = 105 # 手动加上的控制语句, 方便调试的时候测试猜到正确答案的情形
- temp = input('猜一猜花狗家的大胖猪有多少斤:')
- while not temp.isdigit():
- temp = input('输入错了!花猪的体重是整数!不是畸形!再猜猜:')
- if time == 1:
- print('再给你最后一次机会!')
- if time == 0:
- break
- time -= 1
- while temp.isdigit() and time > 0:
- guess = int(temp)
- if (guess != secret) and (flag == 1) and (not 105 <= guess <= 115):
- print('错了!悄悄告诉你,答案是105到115之间',end='。')
- temp = input('再给你3次机会:')
- flag -= 1
- time -= 1 # 把计数器减一的语句分别移到每段条件判断代码的最后
- continue
- if (guess != secret) and (flag == 1) and (105 <= guess <= 115):
- if guess > secret:
- print('没错,花猪体重是在105—115之间!')
- print('胖了胖了,花猪还没有这么胖',end='!')
- temp = input('再给你3次机会:')
- flag -= 1
- time -= 1 # 同上
- continue
- else:
- print('没错,花猪体重是在105—115之间!')
- print('瘦了瘦了,花猪可是很胖的',end='!')
- temp = input('再给你3次机会:')
- flag -= 1
- time -= 1 # 同上
- continue
- if guess == secret:
- print('哇!你是花狗吗?竟然这么清楚大花猪的体重!')
- break
- # 这里删去了共用的 time -= 1
- if guess != secret and flag == 0:
- if guess > secret:
- temp = input('胖了胖了!再猜猜看:')
- else:
- temp = input('瘦了瘦了!再猜猜看:')
- if time == 2:
- print('你还有最后一次机会',end='!')
- if time == 1:
- print('这都猜不中!辣鸡!')
- time -= 1 # 同上
- print('游戏结束!再见!~')
复制代码 |
|