如何常规检查 python 中的 ValueError?

How to conventionally check for ValueError in python?

我在 tryexcept 语句旁边使用了 while True: 循环来错误检查我为大学作业提交的程序。收到我的成绩后,我因使用 True 循环而被打分,因为它们显然 'forbidden' 并且在 Python 编程中效率低下。

Python 中的所有编程都是我在大学之前完成的,我使用下面的代码风格来捕获会导致我的程序崩溃的错误。在我被标记下来的特定代码中,我试图确保用户输入是整数,而不是浮点数或字符串。这是代码片段。

question = input('How old are you? ')
while True: 
    try: 
        question = int(question)
        break
    except ValueError:
        question = input('Please enter an integer: ')

值得注意的是,我特别被打分了,因为我使用了这种包含 while True 的方法来检查整数输入。

这让我很奇怪;这样做的正确方法是什么?我的标记的反馈让我认为我所做的是一些原始的错误检查方法,但我从未遇到过更高级的方法。

如果有人知道 'the proper and correct way' 确保输入是整数,同时放弃使用 while True,我将不胜感激!

这个具体案例中,你可以放弃try-except:

question = input('Please enter an integer.')
while not question.isdigit():
    question = input(f'{question} is not an integer. Please enter an integer.')

question = int(question)

也就是说,我会说您的代码没有任何问题,与此解决方案相比,它实际上是这种情况的惯用方法。

此外,它确实与您的解决方案不同,因为它检查可以完全转换为整数的用户输入,而您的接受,例如,浮点数。