簡體   English   中英

打破基本python的循環

[英]Breaking a loop for basic python

我已經為此工作了一段時間。 我已經能夠讓這部分工作,但從來沒有完成。 最終目標是將用戶循環回另一個游戲,如果他們願意的話。 我認為問題出在我的 break 語句上,但我不確定如何繞過它。 我已經包含了我所有的代碼,以便可以發現任何錯誤。 抱歉,如果已經回答了這個問題,我找不到存在此類問題的頁面。

def game():
    import random
    from random import randint
    n = randint(1, 10)
    print('Enter a seed vlaue: ')
    the_seed_value = input(' ')

    random.seed(the_seed_value)

    guessesTaken = 0

    print("what is your name?")
    myName = input("")

    guess = int(input("Enter an integer from 1 to 99: "))

    while n != "guess":


        if guess < n:
            print ("guess is low")
            guessesTaken = guessesTaken + 1
            guess = int(input("Enter an integer from 1 to 99: "))
        elif guess > n:
            print ("guess is high")
            guessesTaken = guessesTaken + 1
            guess = int(input("Enter an integer from 1 to 99: "))
        else:
            print ("Congradulations " + myName +  " you guessed it in " + str(guessesTaken) + " guesses!") 
            break 


    print('Want to play agian? y/n')
    answer = input(" ")
    if answer == "n":
        print ("Ok, See you next time!")

    elif answer == "y":
        print("Starting new game!")
        game()


def main():
    game()

if __name__ == "__main__":
    main()

一方面,@kerwei 正確地指出您的while行有問題,需要從while n != "guess":更改為while n != guess:

第二,當玩家猜對時,你的 while 循環就得到滿足,繞過Congrats行。

由於游戲目前的結構是保持循環直到玩家猜對了,一個簡單的解決方法是從循環中刪除else:行並在之后放置勝利語句。 那是,

def game()
    ...
    while n != guess:
        if guess < n:
            ...
        elif guess > n:
            ...
    print('Congrats!')
    print('play again?')
    ... 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM