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变量和数据类型详解
Feb 15 Python
使用Python操作excel文件的实例代码
Oct 15 Python
用matplotlib画等高线图详解
Dec 14 Python
教你用Python写安卓游戏外挂
Jan 11 Python
python判断完全平方数的方法
Nov 13 Python
Python实现Selenium自动化Page模式
Jul 14 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
Python 限定函数参数的类型及默认值方式
Dec 24 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 Python
python 使用pandas读取csv文件的方法
Dec 24 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/04 星际争霸
网站用php实现paypal整合方法
2010/11/28 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
2012/03/27 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
对vue下点击事件传参和不传参的区别详解
2018/09/15 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
Python中字符串的处理技巧分享
2016/09/17 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
python多维数组切片方法
2018/04/13 Python
python创建文件备份的脚本
2018/09/11 Python
selenium+python环境配置教程详解
2019/05/28 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
公司领导推荐信
2013/11/12 职场文书
人力资源管理专业学生自我评价
2013/11/20 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
党员转正党支部意见
2015/06/02 职场文书
早上好问候语大全
2015/11/10 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
Python Parser的用法
2021/05/12 Python
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技