gpt4 book ai didi

python - 检查字符串是否为仅表示为十进制数的 float

转载 作者:行者123 更新时间:2023-12-01 03:20:58 25 4
gpt4 key购买 nike

我正在编写脚本来检查一对数字是否是有效坐标。我需要检查数字是否仅以小数表示,并且经度范围为 0 到 180 正值或负值,纬度范围为 0 到 90 正值或负值。我使用了 try/except block 来检查数字是否是这样的 float :

def isFloat(n):
try:
float(n)
return True
except ValueError:
return False

虽然这大部分有效,但我希望它接受仅以小数表示的 float ,而不接受诸如 TrueFalse1e1NaN

最佳答案

您可以使用相当简单的 regular expression :

import re

def isFloat(n):
n = str(n) # optional; make sure you have string
return bool(re.match(r'^-?\d+(\.\d+)?$', n)) # bool is not strictly necessary
# ^ string beginning
# -? an optional -
# \d+ followed by one or more digits (\d* if you want to allow e.g. '.95')
# (\.\d+)? followed by an optional group of a dot and one or more digits
# $ string end

>>> isFloat('4')
True
>>> isFloat('4.567')
True
>>> isFloat('-4.567')
True
>>> isFloat('-4.')
False
>>> isFloat('-4.45v')
False
>>> isFloat('NaN')
False
>>> isFloat('1e1')
False

关于python - 检查字符串是否为仅表示为十进制数的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41923280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com