如何使用来自同一函数的值循环函数?

2024-06-07 13:53:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在制作一个“刽子手”游戏。下面是我开发的一个函数,它返回未使用的字母。但是,我不知道如何保存从函数收到的值,并在它在while循环中循环时再次使用它

这就是它目前正在做的事情

你好(字)

L(猜字母) 未使用的字母:ABCDEFGHIJKMNOPQRSTUVWXYZ

(猜出的字母) 未使用的字母:bcdefghijklmnopqrstuvxyz

O(猜字母) 未使用的字母:ABCDEFGHIJKLMNPQRSTUVWXYZ

我需要它来做这个。请注意,它如何保持对上一个字符串/列表的更改

L(猜字母) 未使用的字母:ABCDEFGHIJKMNOPQRSTUVWXYZ

(猜出的字母) 未使用的字母:BCDEFGHIJKMNOPQRSTUVWXYZ

O(猜字母) 未使用的字母:BCDEFGHIJKMNPQRSTUVWXYZ

ALPHABET = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R','S', 'T', 'U','V', 'W', 'X', 'Y', 'Z']

word = input() #word player 2 is trying to guess
guessedletter = input()


def correctguess(): #Prints unused letters
    newABC = []
    newABCstring = ('')
    for x in ALPHABET:
        if x != guessedletter:
            newABC.append(x)
            newABCstring = (newABCstring + str(x))
    print("Unused letters:" + " " + (newABCstring))
   

guesses=6
while guesses<=6 and guesses>0:
    correctguess()
    guessedletter=input()

Tags: 函数游戏input字母wordwhilealphabetletters
3条回答

您应该使用另一个变量来跟踪未使用的字母。这将有助于从列表中删除每个字母

ALPHABET = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R','S', 'T', 'U','V', 'W', 'X', 'Y', 'Z']

word = input() #word player 2 is trying to guess
try:
     guessedletter = input() #this will need somesort of loop around it for the game to continue as well
     RemainingLetters.Contains(guessedletter)
     correctguess(guessedletter)
catch:
     print("You have already used that letter")

RemainingLetters = ALPHABET

def correctguess(x): #Prints unused letters (x is used to get the letter that got guessed

    RemainingLetters.Remove(RemainingLetters.Index(x)) #find the index of the guessed letter and removes it
    print("Unused letters: " + RemainingLetters))

您可以跟踪全局变量中未使用的字母。我不完全遵循您的代码,但它可能会像这样:

ALPHABET = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R','S', 'T', 'U','V', 'W', 'X', 'Y', 'Z']

word = input() #word player 2 is trying to guess
guessedletter = input()

unused = ALPHABET

def correctguess(): #Prints unused letters
    for x in ALPHABET:
        if x == guessedletter:
            unused.remove(x)
    print("Unused letters:", "".join(unused))
   

guesses=6
while guesses<=6 and guesses>0:
    correctguess()
    guessedletter=input()

这个问题需要一个全局变量来跟踪已使用的字母(或者,未使用的字母)

您应该在函数外部声明此变量。在程序开始时对其进行初始化(将其设置为完整字母表或空列表),然后在每次收到用户输入时对其进行更新

相关问题 更多 >

    热门问题