我在while True:
和try
语句旁边使用了except
循环来对我为大学分配的程序进行错误检查。收到我的成绩后,我被标记为使用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
,我将不胜感激!
答案 0 :(得分:1)
在这种特定情况下,您可以放弃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)
也就是说,我想说您的代码没有什么问题,与这种解决方案相比,这种情况实际上是惯用的。
而且,它与您的解决方案的不同之处在于,它检查可以完全转换为整数的用户输入,而您的输入则接受浮点数。