Python实现 版本号对比功能的实例代码


Posted in Python onApril 18, 2019

下面先给大家介绍python实现版本号对比功能,具体内容如下所示:

相同位置版本号大小比较:

def abc(str1, str2):
  if str1 == "" or str2 == "":
    print("输入包含空字符串,请重新输入")
    return ("输入包含空字符串,请重新输入")
  elif str1 == str2:
    print("2个版本号相同")
    return ("2个版本号相同")
  elif int(str1[0]) > int(str2[0]):
    print("版本1的版本号更大")
    return ("版本1的版本号更大")
  elif int(str1[0]) < int(str2[0]):
    print("版本2的版本号更大")
    return ("版本2的版本号更大")
  abc(str1[2:], str2[2:])
abc("5.3.2", "5.1.9")

ps:下面看下python 比较两个版本号大小

# -*- coding: utf-8 -*-
__author__ = 'ypp'
import re
def versionCompare(v1="1.1.1", v2="1.2"):
  v1_check = re.match("\d+(\.\d+){0,2}", v1)
  v2_check = re.match("\d+(\.\d+){0,2}", v2)
  if v1_check is None or v2_check is None or v1_check.group() != v1 or v2_check.group() != v2:
    return "版本号格式不对,正确的应该是x.x.x,只能有3段"
  v1_list = v1.split(".")
  v2_list = v2.split(".")
  v1_len = len(v1_list)
  v2_len = len(v2_list)
  if v1_len > v2_len:
    for i in range(v1_len - v2_len):
      v2_list.append("0")
  elif v2_len > v1_len:
    for i in range(v2_len - v1_len):
      v1_list.append("0")
  else:
    pass
  for i in range(len(v1_list)):
    if int(v1_list[i]) > int(v2_list[i]):
      return "v1大"
    if int(v1_list[i]) < int(v2_list[i]):
      return "v2大"
  return "相等"
# 测试用例
print(versionCompare(v1="", v2="")) 
print(versionCompare(v1="1.0.a", v2="d.0.1"))
print(versionCompare(v1="1.0.1", v2="1.0.1"))
print(versionCompare(v1="1.0.2", v2="1.0.1"))
print(versionCompare(v1="1.0.1", v2="1.0.2"))
print(versionCompare(v1="1.0.11", v2="1.0.2"))

设计思想:

1.使用正则表达式判断版本号格式是否正确
2.将字符串用”.”分隔成数组
3.比较数组长度,将长度短的数组用“0”补齐成相等长度数组
4.逐个遍历数组元素,比较大小

测试用例:

1.版本号为空
2.版本号含非数字
3.版本号长度不一致
4.版本号以点为分隔,逐位比较

总结

以上所述是小编给大家介绍的Python实现 版本号对比功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中的日期时间处理详解
Nov 17 Python
解决Python requests 报错方法集锦
Mar 19 Python
python中import reload __import__的区别详解
Oct 16 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
Django中使用Whoosh进行全文检索的方法
Mar 31 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
python3 实现调用串口功能
Dec 26 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
Python实现查找数据库最接近的数据
Jun 08 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
Python网络爬虫之爬取微博热搜
Apr 18 #Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 #Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 #Python
Python面向对象总结及类与正则表达式详解
Apr 18 #Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 #Python
详解python数据结构和算法
Apr 18 #Python
python基础知识(一)变量与简单数据类型详解
Apr 17 #Python
You might like
简化php模板页面中分页代码的解析
2009/02/06 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
PHP的AES加密算法完整实例
2016/07/20 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
CKEditor4配置与开发详细中文说明文档
2018/10/08 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
通过自学python能找到工作吗
2020/06/21 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
《锄禾》教学反思
2014/04/08 职场文书
学校安全防火方案
2014/06/07 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
长城英文导游词
2015/01/30 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
培训通知书模板
2015/04/17 职场文书
班级联欢会主持词
2015/07/03 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python