首页 > 解决方案 > 为什么我没有在这个高低代码中收到游戏结束消息

问题描述

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()

标签: python

解决方案


所以这里有几件事,但最重要的是,如果我们猜对了,变量 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")

我们得到所需的输出,当猜到数字时程序退出。


推荐阅读