我无法找出实现这一目标的正确方法。
如果我输入float("- 4")
,我希望它返回-4.0
,无论空白或空格如何。因此,这也需要与其他输入一起使用,例如" - 4"
。但我不希望这会影响该函数的任何其他结果,因此"4 -"
或"5 5"
等输入也不应该复合。
我写了一个函数来尝试确定某些东西是否是我程序的正确输入。
def isNum(num):
try:
float(expr)
except ValueError:
return False
return True
上面的整个输入问题令我感到沮丧。
答案 0 :(得分:2)
简单地删除import re
def parse_float(inp):
return float(re.sub(r'-\s*(\d)', r'-\1', inp))
和右边任何数字之间的空格:
>>> parse_float(" - 4 ")
-4.0
>>> parse_float(" 5 ")
5.0
示例:
ValueError
对于无效的浮点数,它会因>>> parse_float(" 4 - ")
...
ValueError: invalid literal for float(): 4 -
>>> parse_float(" 5 5 ")
...
ValueError: invalid literal for float(): 5 5
而失败:
if