首页 > 解决方案 > 如何在 python 中常规检查 ValueError?

问题描述

我使用了一个while True:循环tryexcept语句来错误检查我为我的大学作业提交的程序。在收到我的成绩后,我因使用True循环而被打分,因为它们显然是“禁止的”并且在 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检查整数输入。

这让我想知道;这样做的正确方法是什么?我的标记的反馈让我认为我所做的是一些原始的错误检查方法,但我从来没有遇到过更先进的东西。

如果有人知道“正确和正确的方法”来确保输入是整数,同时放弃使用while True,我将不胜感激!

标签: pythonerror-checking

解决方案


这种特定情况下,您可以放弃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)

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

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


推荐阅读