一个返回十进制小数为True的版本的str.isdigit?
一个返回十进制小数为True的版本的str.isdigit?
这个问题已经有了答案:
我想要测试 raw_input
来确保字符串仅包含数字,并且最多只有一个小数点。 str.isdigit()
看起来很有前途,但是如果字符串中有小数点,它不会返回 True。
理想情况下,代码看起来应该像这样:
def enter_number(): number = raw_input("Enter a number: ") # I enter 3.5 if number.SOMETHING: # SOMETHING is what I am looking for float_1 = float(number) return float_1 else sys.exit() half = enter_number() / 2 # = 1.75 double = enter_number() * 2 # = 7
admin 更改状态以发布 2023年5月24日
我建议采用EAFP的方法。
float
会在其参数不是有效的浮点数时引发ValueError
异常:
In [6]: float('bad value') --------------------------------------------------------------------------- ValueError Traceback (most recent call last)in () ----> 1 float('bad value') ValueError: could not convert string to float: 'bad value'
你可以捕获它:
number = raw_input("Enter a number: ") try: return float(number) except ValueError: sys.exit()