python -- 判断给定的参数是否是地理位置的经度和纬度
2024-10-12 03:40:41
例子:
coordinates = "2.3,-8ui" 无效地理位置
coordinates = "2.3,-8i" 有效地理位置
方法一:使用try...except验证精度和纬度能否转化为float,若能,则参数合理;否则不合理:包含英文字符,特殊字符,含有空格等非法情况
def is_valid_coordinates(coordinates):
try:
lat, lng = [abs(float(c)) for c in coordinates.split(',') if 'e' not in c]
except ValueError:
return False return lat <= 90 and lng <= 180
方法二:利用正则表达式验证是否满足条件
import re def is_valid_coordinates(coordinates):
return bool(re.match("-?(\d|[1-8]\d|90)\.?\d*, -?(\d|[1-9]\d|1[0-7]\d|180)\.?\d*$", coordinates))
方法三:方法二与方法一的结合
def is_valid_coordinates(coordinates):
import re
paraX, paraY = coordinates.split(',')[0].strip(), coordinates.split(',')[1].strip()
for para in coordinates.split(','):
pattern = re.compile(r'-?[0-9]*\.*[0-9]+$')
groups = re.findall(pattern, para)
if not groups:
return False
return abs(float(paraX))<=90 and abs(float(paraY))<=180:
最新文章
- git多账号登录问题
- 【C#】分享一个弹出容器层,像右键菜单那样召即来挥则去
- React Native知识5-Touchable类组件
- grunt学习笔记
- easyUI 树的上下文菜单
- Google Tensorflow 源码编译(一):Protobuf<;v3.0.0-alpha-3>;
- Android 和iOS中 Gesture 和 Touch
- 编绎openssl杂记(window)
- notebook
- 重载(overload)、重写:覆盖(override)、重定义:遮蔽(redefine)、多态
- template might not exist or might not be accessible by any of the configured Template Resolvers
- java 随机数高效生成
- Python-数据类型之元组
- 你必须知道的10个Python第三库
- -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中
- RESTful规范1
- python之路--网络编程之socket
- Java并发编程的艺术(一)——并发编程需要注意的问题
- Codeforces Round #407 (Div. 2) D. Weird journey(欧拉路)
- linux命令学习笔记(62)-curl命令-url下载工具