猜数字游戏这些代码为什么运行第三次会不运行
这段时间复习这个个题,我自己又打了一遍但是发现出现了一个问题,我输入错误一次后输入正确代码可以正常运行,但是输入错误两次在输入一次正确答案 代码就不会正常运行。代码如下:
import random
com_num=random.randint(1,9)
user_num=input('输入数字')
temp=user_num.isdigit()
while temp==0:
user_num=input('输入正确类型')
temp=user_num.isdigit()
user_num=int(user_num)
chance=2
while chance:
if user_num==com_num:
print('猜测正确')
break
if user_num>=com_num:
print('比系统值大',user_num-com_num)
if user_num<=com_num:
print('比系统值小',com_num-user_num)
print('您还有',chance,'次机会')
user_num=input('错误,重新新输入')
temp=user_num.isdigit()
while temp==0:
user_num=input('输入正确类型')
temp=user_num.isdigit()
user_num=int(user_num)
chance-=1
if chance==0:
print('您没有机会了')
print('游戏结束')
运行代码如图所示
三次机会第一次错误 然后输入正确后 我画红圈位置代码会正常运行
但是如果输入两次错误,最后一次正确,我画红圈位置代码不会运行
请问问题出在哪?
本帖最后由 逃兵 于 2021-2-17 13:26 编辑
第三次循环的时候chance=0了
不会再进入while循环了
直接到print('游戏结束')了
修改代码
import random
com_num=random.randint(1,9)
user_num=input('输入数字')
temp=user_num.isdigit()
while temp==0:
user_num=input('输入正确类型')
temp=user_num.isdigit()
user_num=int(user_num)
chance=3
while chance:
chance-=1
if user_num==com_num:
print('猜测正确')
break
if user_num>=com_num:
print('比系统值大',user_num-com_num)
if user_num<=com_num:
print('比系统值小',com_num-user_num)
if chance==0:
print('您没有机会了')
break
print('您还有',chance,'次机会')
user_num=input('错误,重新新输入')
temp=user_num.isdigit()
while temp==0:
user_num=input('输入正确类型')
temp=user_num.isdigit()
user_num=int(user_num)
print('游戏结束')
逃兵 发表于 2021-2-17 13:21
第三次循环的时候chance=0了
不会再进入while循环了
谢谢懂了
页:
[1]