我希望一个输入一直要求输入,除非输入是一个不超过两位小数的数字。
number = input('please enter a number')
while number **is not a decimal (insert code)**:
. . . .number = input('incorrect input,\nplease enter a number')
最佳答案
您可以使用评论中提到的正则表达式:
import re
def hasAtMostTwoDecimalDigits(x):
return re.match("^\d*.\d{0,2}$", x)
number = input("please enter a number")
while not hasAtMostTwoDecimalDigits(number):
number = input("incorrect input,\nplease enter a number")
或者使用decimal
模块:
from decimal import Decimal
def hasAtMostTwoDecimalDigits(x):
x = Decimal(x)
return int(1000*x)==10*int(100*x)
number = input("please enter a number")
while not hasAtMostTwoDecimalDigits(number):
number = input("incorrect input,\nplease enter a number")
如 Jon Clements 所述在评论中,这可以变得更简单:
def hasAtMostTwoDecimalDigits(x):
return Decimal(x).as_tuple().exponent >= -2
关于python - 如何检查输入是否为小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21080555/