在Python列表中存储无效输入

2024-05-02 02:06:12 发布

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

我知道我可以使用the try: except ValueError:处理无效的输入,但是如何将该输入存储在列表、变量或其他什么东西中呢

我希望当用户输入文本时,代码在代码的某些部分告诉“它绝对不是[文本]”(如下面的代码所示)。但它并没有按现在的方式工作

while True:
        try:
            while guessedNumber != realNumber:
                tries = tries + 1
                checkTries()
                guessedNumbers.append(guessedNumber)
                os.system("clear")
                print(pyfiglet.figlet_format("Try again!", font = "big"))
                print("The number is:")
                for x in guessedNumbers:
                    if x < realNumber:
                        print("Higher than " + str(x))
                    elif x > realNumber:
                        print("Lower than " + str(x))
                    elif type(guessedNumber) is not int:
                        print("Definitely not " + str(x)) # to solve this, maybe use another Try: except:.
                guessedNumber = int(input("The number is... "))
            if tries == 1:
                os.system("clear")
                print(pyfiglet.figlet_format("You won!", font = "big"))
                print("You got it in the first try! What a lucky person!")
            else:
                os.system("clear")
                print(pyfiglet.figlet_format("You won!", font = "big"))
                print("Way to go! You got it in " + str(tries) + " tries!")
                break
        except ValueError:
            guessedNumbers.append(guessedNumber)
    playAgain()

Tags: 代码youossystemprintcleartryexcept
1条回答
网友
1楼 · 发布于 2024-05-02 02:06:12

无论用户输入是作为命令行参数、传递的函数/方法值还是由input()函数返回的输入,您都可以创建一个列表并将无效输入添加到except子句中

命令行参数

try:
    ...
except ValueError:
    invalid_input.append(sys.argv)

函数调用

def my_func(argument):
    try:
        ...
    except ValueError:
        invalid_input.append(argument)

Input()函数

user_input = input()
try:
    ...
except ValueError:
    invalid_input.append(user_input)

注意invalid_input中定义的范围将由您选择

编辑1

由于所讨论的变量只有在为整数时才是“有效”的,因此检查该属性是try子句中唯一需要的语句

guesses = []
while True:
    guess = input("Guess a number")
    try:
        guess = int(guess)
    except ValueError:
        print(f"Definitely not {guess}")
        guesses.append(guess)
        continue

相关问题 更多 >