secret =random.randint(1,10)
times = 3
guess = 0
print('和JSY玩儿个游戏吧!')
temp = input('不妨猜猜JSY心里的数字吧:')
while not temp.isdigit():
temp = input('输入有误,请重新输入:')#出现这个BUG的原因就在于当这个输入正确时进入到while循环而你下面又有一个 temp =input() 所以又得赋值一次
while guess != secret and times > 0:#其实还有一个BUG当你答对的时候 print('恭喜你,答对了')这句是不会出现的因为你的while循环是在guess != secret 的条件
temp =input() #下进行的当guess == secret时直接退出循环
guess = int(temp)
times = times - 1
if guess == secret:
print('恭喜你,答对了')
else:
if guess < secret:
print('小了小了')
else:
print('大了大了')
if times > 0:
print('继续试试吧:', end = '')
else:
print('完犊子了')
print('游戏结束了')
以下是我的解决办法(仅供参考)
import random
secret =random.randint(1,10)
times = 3
guess = 0
print('和JSY玩儿个游戏吧!')
temp = input('不妨猜猜JSY心里的数字吧:')
while not temp.isdigit():
temp = input('输入有误,请重新输入:')
while 1:
guess = int(temp)
times = times - 1
if guess == secret:
print('恭喜你,答对了')
break#break参数直接退出当前循环马上你就学到了
else:
if guess < secret:
print('小了小了')
else:
print('大了大了')
if times > 0:
print('继续试试吧:', end = '')
temp=input()#放在这儿就可以先让程序判断再重新赋值
else:
print('完犊子了')
break
print('游戏结束了')
ja258736874 发表于 2020-12-21 20:22
第二个问题,请看下面的代码~
import random
secret =random.randint(1,10)
times = 3
guess = 0
print('和JSY玩儿个游戏吧!')
temp = input('不妨猜猜JSY心里的数字吧:')#两个input自然就要赋值两次
while not temp.isdigit():
temp = input('输入有误,请重新输入:')
temp =input()
guess = int(temp)#guess去最后一个temp
while guess != secret and times > 0:
times = times - 1
if guess == secret:#input放在外面除了Time就没有什么再阻止while循环了所以会一直以相同的值循环直到time=0
print('恭喜你,答对了')
else:
if guess < secret:
print('小了小了')
else:
print('大了大了')
if times > 0:
print('继续试试吧:', end = '')
else:
print('完犊子了')
print('游戏结束了')
有帮助的话给个最佳吧 ja258736874 发表于 2020-12-22 16:34
这个程序还是有问题,我运行了 它似乎只循环 guess
????是我理解出问题了吗,你输入1不就是小了小了吗?你就输入大的呀 ja258736874 发表于 2020-12-22 16:35
@小伤口
这本来就是随机,上面的情况只能说明结果大于3 ja258736874 发表于 2020-12-22 16:44
完美!我要继续努力!
加油,后面学的多了,就可以用很多种办法实现,更完美,更多功能{:10_256:}
页:
[1]