检查用户输入是否对十进制有效?

2024-05-23 19:46:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我要确保输入的是数字。我尝试过用符号和字母进行测试,但是shell只是抛出了一个错误:“Decimal的文本无效”。我正在研究一个计算器,所以我认为十进制模块最适合。提前谢谢。在

这是我的代码:

import decimal

while True:
 userInput = (raw_input("Enter number:"))
 try:
  userInput = decimal.Decimal(userInput)
  break
 except ValueError:
  print ("Number please")

使用Python2.7.6


Tags: 模块代码文本importtrue错误字母符号
3条回答

不是捕捉ValueError,而是捕捉decimal.InvalidOperation错误。将无效数据传递给decimal.Decimal构造函数时会引发此错误。在

抓住decimal.InvalidOperation

>>> a = 's'
>>> try:
...     decimal.Decimal(a)
... except decimal.InvalidOperation:
...     print 'fds'
... 
fds

检查值是否为十进制有效输入的正确方法是:

from decimal import Decimal, DecimalException

try:
    Decimal(input_value)
except DecimalException:
    pass

https://docs.python.org/2/library/decimal.html#decimal.DecimalException

相关问题 更多 >