Python猜大小游戏中一个有关循环的问题
第一张是本人所写的代码,运行后却出现了如图二所示的错误,程序直接跳过了if times == 1:print("还有一次机会:",end="") , 请问接下来该如何修改呢?编程零基础小白一只,恳求高人指点。 times = times -1
加在倒数第七第八行之间和倒数第九第十行之间 新手·ing 发表于 2017-7-14 12:19
times = times -1
加在倒数第七第八行之间和倒数第九第十行之间
请问方便说明一下原因吗,还有一个问题:为什么开头要给 guess 赋值 0? 是只能赋值0还有除了1到10的其他数字均可呢? 真霄 发表于 2017-7-14 12:21
请问方便说明一下原因吗,还有一个问题:为什么开头要给 guess 赋值 0? 是只能赋值0还有除了1到10的其 ...
赋值一个不是答案的数就行 新手·ing 发表于 2017-7-14 12:24
赋值一个不是答案的数就行
谢谢您,你知道为什么要加 times = times - 1 在倒数七八行间吗 新手·ing 发表于 2017-7-14 12:24
赋值一个不是答案的数就行
您好,我已经理解了times - 1
但是按您的方法运行后,直接跳过了第二次机会,请问是怎么回事呢?
【这是一个赌徒游戏,猜数字一到十
答对者才能活下来
我将给你三次机会
现在猜猜我在想哪个数字:3
小了一点
还有一次机会:】 真霄 发表于 2017-7-14 12:26
谢谢您,你知道为什么要加 times = times - 1 在倒数七八行间吗
如果打印大了或者小了就说明打错了,次数减一 新手·ing 发表于 2017-7-14 12:33
如果打印大了或者小了就说明打错了,次数减一
十分感谢您 真霄 发表于 2017-7-14 12:33
十分感谢您
如果我的答案帮助到了你,请给最佳答案 真霄 发表于 2017-7-14 12:33
十分感谢您
大家都是一个论坛的,就应该互帮互助,不用‘您’的,不是折损我嘛{:10_256:} 新手·ing 发表于 2017-7-14 12:37
如果我的答案帮助到了你,请给最佳答案
按您的方法运行后,直接跳过了第二次机会,请问是怎么回事呢?
【这是一个赌徒游戏,猜数字一到十
答对者才能活下来
我将给你三次机会
现在猜猜我在想哪个数字:3
小了一点
还有一次机会:】 新手·ing 发表于 2017-7-14 12:38
大家都是一个论坛的,就应该互帮互助,不用‘您’的,不是折损我嘛
import random
secret = random.randint(1,10)
times = 3
guess = 0
print('---------------赌徒游戏---------------')
print("这是一个赌徒游戏,猜数字一到十")
print("答对者才能活下来")
print("我将给你三次机会")
print("现在猜猜我在想哪个数字:",end="")
while (guess != secret) and (times != 0):
temp = input()
while not temp.isdigit():
temp = input("提示你一下,是整数:")
guess = int(temp)
times = times - 1 #玩家机会减一
if guess == secret:
print("你答对了")
print("走吧")
else:
if guess > secret:
print("大了一点")
times = times - 1
else:
print("小了一点")
times = times - 1
if times == 2:
print("还有两次机会:",end="")
if times == 1:
print("还有一次机会:",end="")
else:
print('你没机会了')
print("你被杀手杀死了")
这是按你的意见改进后的代码,程序运行后直接跳过了【还有两次机会】 真霄 发表于 2017-7-14 13:25
这是按你的意见改进后的代码,程序运行后直接跳过了【还有两次机会】
等下我看看 真霄 发表于 2017-7-14 13:25
这是按你的意见改进后的代码,程序运行后直接跳过了【还有两次机会】
你倒是把第十五行删掉啊。。。怪我没说清楚 新手·ing 发表于 2017-7-14 15:20
你倒是把第十五行删掉啊。。。怪我没说清楚
恩。。。还是不对。。{:5_104:} 新手·ing 发表于 2017-7-14 15:20
你倒是把第十五行删掉啊。。。怪我没说清楚
哈哈,我找到问题所在了,我自己蠢了.....最后的忘了终止循环了
这是我修改过的,已经可以按理想运行了,谢谢您的帮助
import random
secret = random.randint(1,10)
times = 3
guess = 0
print('---------------赌徒游戏---------------')
print("这是一个赌徒游戏,猜数字一到十")
print("答对者才能活下来")
print("我将给你三次机会")
print("现在猜猜我在想哪个数字:",end="")
while (guess != secret) and (times != 0):
temp = input()
while not temp.isdigit():
temp = input("提示你一下,是整数:")
guess = int(temp)
if guess == secret:
print("你答对了")
print("走吧")
else:
if guess > secret:
print("大了一点")
times = times - 1
else:
print("小了一点")
times = times - 1
if times == 2:
print("还有两次机会:",end="")
if times == 1:
print("还有一次机会:",end="")
else:
print('你没机会了')
print("你被杀手杀死了")
真霄 发表于 2017-7-14 15:59
哈哈,我找到问题所在了,我自己蠢了.....最后的忘了终止循环了
这是我修改过的,已经可以按理想运行了 ...
{:10_275:} 以上其实还有问题,[当第一次猜到正确答案时,会连带执行30,31行代码],故修改后在17,18行之中加入break语句,解决问题.{:5_91:}
页:
[1]