gpt4 book ai didi

python - 如何捕获两种不同类型的错误输入

转载 作者:行者123 更新时间:2023-11-30 23:18:31 25 4
gpt4 key购买 nike

我正在用 python 3 编写代码,我需要根据输入的内容输出两个不同的字符串。它们都是 ValueError。

try:
number = False
while number == False:
chooseword = int(input("Please enter an integer number (0<=number<10) to choose the word in the list: "))

except ValueError: #empty input
print("Empty input!")
except ValueError: #non-integer, non-empty input
print("Input must be an integer!")
else: #do stuff

我已经尝试过这个问题的方法,但我只收到一条打印消息。 How to catch empty user input using a try and except in python?

我还尝试通过使用 while 循环来忽略两个选择之一的 ValueError,并尝试使用 try except block 捕获另一个选择:

empty = True
while empty == True:
chooseword = int(input("Please enter an integer number (0<=number<10) to choose the word in the list: "))
if chooseword = "":
empty = True

最佳答案

由于您正在捕获 ValueError,因此第一个 except 将始终捕获它。事实上,如果您查看 ValueError int() 引发的情况,就会发现这两种情况都是相同的:

>>> int('')
ValueError: invalid literal for int() with base 10: ''
>>> int('1.2')
ValueError: invalid literal for int() with base 10: '1.2'

如果你想专门捕获空的情况,只需查看异常即可:

try:
word = input("Please enter an integer number (0<=number<10) to choose the word in the list: ")
word = int(word)
except ValueError as e:
if not word:
print("Empty!")
else:
print("Invalid!")

关于python - 如何捕获两种不同类型的错误输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26691532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com