社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何在python中常规检查ValueError?

Kiko • 5 年前 • 1583 次点击  

我用了一个 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 检查整数输入。

我不禁要问,这样做的正确方法是什么?我的记分员的反馈让我认为我所做的是一些原始的错误检查方法,但我从来没有遇到过更多的进步。

如果有人知道“正确且正确的方法”来确保输入是整数,而不使用 虽然是真的 ,非常感谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52495
 
1583 次点击  
文章 [ 1 ]  |  最新文章 5 年前
gmds
Reply   •   1 楼
gmds    5 年前

这个具体案例 ,你可以放弃 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)

也就是说,我会说你的代码没有什么问题,与这个解决方案相比,它实际上是这种情况下的惯用方法。

而且,它 与您的解决方案不同的是,此方法检查可完全转换为整数的用户输入,而您的方法则接受浮动。