python - 为什么我没有在这个高低代码中收到游戏结束消息
问题描述
import random
game = False
random_num = random.randint(1 , 100)
print(random_num)
x = 0
if x == 1:
game = True
def code():
if number == random_num :
x + 1
print('you von')
elif number > random_num :
print('lov')
elif number < random_num :
print('higher')
if game == True:
print ("game over")
while x == 0:
number = int(input("Guess the number "))
code()
如果猜出正确的数字,则代码应该结束游戏从未打印过一直要求我猜数字
我也试过这段代码,如果函数 game = True,pycharm grays out-> game in
import random
game = False
random_num = random.randint(1 , 100)
print(random_num)
#x = 0
#if x == 1:
#game = True
def code():
if number == random_num :
game = True
print('you von')
elif number > random_num :
print('lov')
elif number < random_num :
print('higher')
if game == True:
print ("game over")
while game == False:
number = int(input("Guess the number "))
code()
解决方案
所以这里有几件事,但最重要的是,如果我们猜对了,变量 x 不会与新值一起返回。为了从具有更新变量的函数返回变量,需要返回它,如下所示:
def code(x):
if number == random_num :
x = 1
print('you von')
elif number > random_num :
print('lov')
elif number < random_num :
print('higher')
return x
while x == 0:
number = int(input("Guess the number "))
x = code(x)
print(x)
语句的顺序也意味着其中一些被跳过。当我们像这样重新排序时:
import random
game = False
random_num = random.randint(1 , 100)
print(random_num)
x = 0
def code(x,number):
if number == random_num :
x = 1
print('you von')
elif number > random_num :
print('lov')
elif number < random_num :
print('higher')
return x
while x == 0:
number = int(input("Guess the number "))
x = code(x,number)
print(x)
if x == 1:
game = True
if game == True:
print ("game over")
我们得到所需的输出,当猜到数字时程序退出。