为什么我的代码没有意识到game = false?

问题描述 投票:-2回答:1

我有一个while循环,说。

game = True
while game == True:
    shop = False
    while shop == False:
        choice = input("Press ENTER to dig. Press E(then ENTER) to end game. Press S(then enter) for shop.")
        if choice == "E" or choice == "e":
           game = False

但它一直在重复,我也不知道为什么(我也是编码新手,所以可能有一个显而易见的答案)代码的链接在这里。https:/repl.it@WeirdDragonore-digging-sim#main.py

python variables boolean
1个回答
1
投票

你需要脱离内循环,这样你才能回到外循环的测试。

game = True
while game:
    shop = False
    while not shop:
        choice = input("Press ENTER to dig. Press E(then ENTER) to end game. Press S(then enter) for shop.")
        if choice == "E" or choice == "e":
            game = False
            break

0
投票

你需要 shop == True 要先从内心打破而。然后,它可以实现 game == False


0
投票

你需要了解while循环的工作原理,以这个为例。

a = 5
while a == 5:
    a = 6
    print('done')

输出:

 done

我们给while循环的条件是告诉它什么时候停止循环 但python必须先到达该条件才能进行比较 也就是说只要没有break语句,python就会先完成当前的循环。但是在你的代码中,由于该while循环中的另一个while循环永远不会结束,所以我们从来没有给python一个chance来比较该游戏条件。

game = True
while game == True:
    shop = False
    while shop == False:
        choice = input("Press ENTER to dig. Press E(then ENTER) to end game. Press S(then enter) for shop.")
        if choice == "E" or choice == "e":
           game = False

要解决这个问题,只需要在game = False后面加一个break语句即可。

        if choice == "E" or choice == "e":
           game = False
           break
© www.soinside.com 2019 - 2024. All rights reserved.