如何检查输入以查看字符是否有字母、是否重复或长度超过一个字符

所以下面的代码给出了一个输入,检查输入是否是一个字符长,在过去的猜测中,看看它是否是一个字母。否则它应该返回消息再试一次。但是,在尝试代码时,我只得到 else 条件而无法得到 if 条件(应该返回结果)。任何人都知道为什么以及如何解决这个问题?


def get_guess(past_guesses):

"""

Checks if past_guesses is 1 letter, a letter or has been used before, and 

prompts user to try again


Example:

>>> get_guess(['A', 'a', 'c', 'd'])

'You need to enter one alphabetic character which you haven't\

already guessed. Try again'

>>> get_guess(['a', 'b', 'c', 'd'])

'a'


"""

answer = "'You need to enter one alphabetic character which you haven't\

already guessed. Try again'"


while True:

    guess = input("Guess a letter: ")

    if guess.isalpha() and len(guess) == 1 and guess not in past_guesses:

        past_guesses.append(guess)

        return guess

    else:

        print (answer)


明月笑刀无情
浏览 168回答 3
3回答

一只斗牛犬

你怎么打电话get_guess()?当您收到提示Guess a letter:并输入任何不是一个字符的内容时,您的代码将运行您的else子句之后的任何内容。例如,如果您在abc收到提示后输入,abc则不是一个字符,因此您将转到 else 子句并打印answer

BIG阳

也许这就是你要找的。您的代码运行良好。您必须打印返回的结果。print get_guess(['A', 'a', 'c', 'd'])

qq_花开花谢_0

Return 不打印pass_guesses,它从您的函数返回值,如果您想使用它,您需要将它分配给一个变量。a = get_guess(['A', 'a', 'c', 'd']) print(a)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python