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 可爱的大小写
Sep 06 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
python实现SOM算法
Feb 23 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
3个用于数据科学的顶级Python库
Sep 29 Python
详解opencv Python特征检测及K-最近邻匹配
Jan 21 Python
Python删除n行后的其他行方法
Jan 28 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python super函数使用方法详解
Feb 14 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Python操作Word批量生成合同的实现示例
Aug 28 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
操作Oracle的php类
2006/10/09 PHP
PHP简介
2006/10/09 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
python数据清洗系列之字符串处理详解
2017/02/12 Python
python统计中文字符数量的两种方法
2019/01/31 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
python 线程的五个状态
2020/09/22 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
安全生产中长期规划实施方案
2014/02/21 职场文书
2014最新离职证明范本
2014/09/12 职场文书
公司租车协议书
2015/01/29 职场文书
听证会主持词
2015/07/03 职场文书
三八节活动主持词
2015/07/04 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书
python实现简易名片管理系统
2021/04/11 Python
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python