簡體   English   中英

是否可以在 while 循環中存儲輸入的值?

[英]Is it possible to store inputted values in a while loop?

我正在嘗試存儲猜測,以便我可以為您已經猜到該字母的情況編寫代碼,並且還可以在他們得到所有字母正確時編寫代碼。 我也可能被困在這部分,因為我不知道如何檢查字母是否與單詞wordname列表中的字母相對應,尤其是當它甚至沒有排序時。

因此,我正在尋找一些可以存儲猜測的代碼,以及可以檢查是否所有正確字母都已被猜到的代碼。 我認為它可能與enumerate() function 有關,但我不確定,因為我以前從未使用過它,只是聽說過它。

此外,供您參考,如果有幫助的話,游戲就是劊子手。

wordname = word_choosing()
wordnamelength = len(wordname)
wordnamelist = list(wordname)

def letter_guess1():
    sleep(1)
    tries = 5
    print(f"{oppositeplayer}, the word is {wordnamelength} letters long")
    while tries > 0:
        guess1 = input("Make your guess: ")
        if guess1 in wordnamelist:
            print("Congrats, that is correct")
            letternum = wordnamelist.index(guess1)
            letternum += 1
            print(f"This letter is number {letternum}")
        elif guess1 not in wordnamelist:
            tries -= 1
            print(f"You have {tries} left")
        if guess1 == "quit".lower():
            exit()
    return tries

tries = letter_guess1()

我認為set非常適合這種情況。 將被猜測的單詞的字母保持為一set ,並將猜測添加到另一set中。 然后,您可以通過使用兩組的intersection來檢查單詞是否猜對了。

像這樣的東西:

wordname = word_choosing()
wordnamelength = len(wordname)
wordnamelist = list(wordname)

def letter_guess1():
    sleep(1)
    tries = 5
    print(f"{oppositeplayer}, the word is {wordnamelength} letters long")

    word_set = set(wordname)
    guessed_letters = set()
    while tries > 0:
        guess = input("Make your guess: ")
        if guess in guessed_letters:
            print("You already guessed this letter")
            continue

        guessed_letters.add(guess)
        if guess in word_set:
            print("Congrats, that is correct")
            letternum = wordnamelist.index(guess)
            letternum += 1
            print(f"This letter is number {letternum}")
        elif guess not in word_set:
            tries -= 1
            print(f"You have {tries} left")

        if word_set.intersection(guessed_letters) == word_set:
            print("You have won!")

        if guess == "quit".lower():
            exit()
    return tries

tries = letter_guess1()

暫無
暫無

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

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