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

lor*_*zra 0 python user-input while-loop python-2.7

我想确保输入数字.我已尝试使用符号和字母进行测试,但shell只会抛出一个错误,上面写着"Decimal的文字无效".我正在研究计算器,所以认为十进制模块最适合.提前致谢.

这是我的代码:

import decimal

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

使用Python 2.7.6

pyn*_*ice 6

捕获十进制.InvalidOperation

>>> a = 's'
>>> try:
...     decimal.Decimal(a)
... except decimal.InvalidOperation:
...     print 'fds'
... 
fds
Run Code Online (Sandbox Code Playgroud)