例子:

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:

最新文章

  1. git多账号登录问题
  2. 【C#】分享一个弹出容器层,像右键菜单那样召即来挥则去
  3. React Native知识5-Touchable类组件
  4. grunt学习笔记
  5. easyUI 树的上下文菜单
  6. Google Tensorflow 源码编译(一):Protobuf&lt;v3.0.0-alpha-3&gt;
  7. Android 和iOS中 Gesture 和 Touch
  8. 编绎openssl杂记(window)
  9. notebook
  10. 重载(overload)、重写:覆盖(override)、重定义:遮蔽(redefine)、多态
  11. template might not exist or might not be accessible by any of the configured Template Resolvers
  12. java 随机数高效生成
  13. Python-数据类型之元组
  14. 你必须知道的10个Python第三库
  15. -1-5 java 多线程 概念 进程 线程区别联系 java创建线程方式 线程组 线程池概念 线程安全 同步 同步代码块 Lock锁 sleep()和wait()方法的区别 为什么wait(),notify(),notifyAll()等方法都定义在Object类中
  16. RESTful规范1
  17. python之路--网络编程之socket
  18. Java并发编程的艺术(一)——并发编程需要注意的问题
  19. Codeforces Round #407 (Div. 2) D. Weird journey(欧拉路)
  20. linux命令学习笔记(62)-curl命令-url下载工具

热门文章

  1. Cocos 2d TestCPP 学习
  2. mongodb操作文件
  3. linux screen工具
  4. pip技巧(加速下载和安装)
  5. java之map的基本介绍
  6. oracle序列的增、删、改、查及使用
  7. GIt如何安装使用
  8. win 右键菜单栏出现sublime打开方式
  9. 下载pywinauto
  10. openssl生成RSA公钥和私钥对