在Python列表中存储无效输入



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

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

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()

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

命令行参数

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

函数调用

def my_func(argument):
try:
...
except ValueError:
invalid_input.append(argument)
<<h2>输入()函数/h2>
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

相关内容

  • 没有找到相关文章

最新更新