python -- 判断给定的参数是否是地理位置的经度和纬度
例子:
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:
python -- 判断给定的参数是否是地理位置的经度和纬度的更多相关文章
- Android 获取地理位置的经度和纬度(zz)
在Android应用程序中,可以使用LocationManager来获取移动设备所在的地理位置信息.看如下实例:新建android应用程序TestLocation. 1.activity_main.x ...
- Android开发之旅-获取地理位置的经度和纬度
在Android应用程序中,可以使用LocationManager来获取移动设备所在的地理位置信息.看如下实例:新建android应用程序TestLocation. 1.activity_main.x ...
- Python判断自定义的参数格式是否正确
import argparse def args_validation(valid_list, valid_value): assert valid_value in valid_list, 'inv ...
- Python判断列表是否已排序的各种方法及其性能分析
目录 Python判断列表是否已排序的各种方法及其性能分析 声明 一. 问题提出 二. 代码实现 2.1 guess 2.2 sorted 2.3 for-loop 2.4 all 2.5 numpy ...
- python语言(四)关键字参数、内置函数、导入第三方模块、OS模块、时间模块
一.可变参数 定义函数时,有时候我们不确定调用的时候会传递多少个参数(不传参也可以).此时,可用包裹(packing)位置参数(*args),或者包裹关键字参数(**kwargs),来进行参数传递,会 ...
- python基础——函数的参数
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...
- Python(函数的参数)
函数参数的使用 def foo(x,y): pass foo(1,2) 形参:就是变量名 实参:就是变量值 形参:位置形参,默认参数,*args,命名关键字参数,**kwargs 实参: 按位置传值的 ...
- Python学习-函数,函数参数,作用域
一.函数介绍 函数定义:函数时组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 我们已经知道python提供了许多内建函数,print(), type()等.我们也可以自己创建函数,这被叫 ...
- [Python]python-jenkins 启动需要参数的job
需求: 我要用python通过api,启动这个job,并且启动这个job需要1个参数 安装依赖: pipenv install python-jenkins 熟悉API的使用方法: 了解一个API的最 ...
随机推荐
- 《HTTP - https》
一:HTTP 缺点? - 明文通讯(也是最受诟病的一个缺点) - 不验证对方的身份(你说你是你?你怎么证明你是你呢?) - 无法验证报文的完整性,可能已经被篡改(在挨打的边缘,来回试探) 二:HTTP ...
- idea 在tomcat启动的时候发现控制台输出的是乱码
先前觉得是tomcat的问题,后来发现是idea的问题: 打开IntelliJ IDEA本地安装目录中bin文件夹下的idea.exe.vmoptions和idea64.exe.vmoptions这两 ...
- jq优化
1.使用链式写法 $('div').find('h3').eq(2).html('Hello');采用链式写法时,jQuery自动缓存每一步的结果,因此比非链式写法要快.根据测试,链式写法比(不使用缓 ...
- 1-4-bootloader架构学习
1-4-bootloader架构学习 1.一般情况下嵌入式 Linux 系统中的软件主要分为以下几部分: 1) 引导加载程序:其中包括内部 ROM 中的固化启动代码和 BootLoader 两部分. ...
- MongoDB pymongo模块 删除数据
使用user集合,删除user集合的数据 import pymongo mongo_client = pymongo.MongoClient( host='192.168.0.112', port=2 ...
- 前端 html button标签
就是一个按钮标签 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...
- python安装提示错误Could not find a version that satisfies the requirement dateutil
今天ytkah在安装python3组件时提示如下错误,这个是缺少依赖的问题,就试着用pip3 install dateutil,但还是提示同样的错误,怎么处理呢? Could not find a v ...
- dedecms批量删除文档关键词可以吗
这几天在重新整服务器,几个站点都是用dedecms搭建的,版本相对比较早,虽然都已经打了补丁,但客户还是在纠结,所以就下载了新的系统进行搭建(注意编码要和原来的一样),导入数据,一切安好,可发现后台有 ...
- OCP-第二节课.md
第一. MQ(压队列) PGA share pool 三层结构 应用服务器--->中间件--->数据库 第二. TCP/IP 第三. 应用层:应用层.表示层.会话层 数据流层: ...
- 晨枫U盘启动盘制作工具V4.0-安装原版XP的方法
[1]进入第一个PE后找到我们事先准备好的xp光盘iso镜像,右键点击加载虚拟磁盘(也可以利用虚拟光驱来加载或者直接用右键里的RAR解压到本地硬盘分区) [2]打开桌面上的windows安装工具,wi ...