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制作在地图上模拟瘟疫扩散的Gif图
Mar 31 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
Jul 01 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
python实现凯撒密码、凯撒加解密算法
Jun 11 Python
Python classmethod装饰器原理及用法解析
Oct 17 Python
Python如何实现感知器的逻辑电路
Dec 25 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 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 二维array转换json的实例讲解
2018/08/21 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
jQuery之动画效果大全
2016/11/09 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
使用python 3实现发送邮件功能
2018/06/15 Python
int在python中的含义以及用法
2019/06/27 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
平面设计师的工作职责
2013/11/21 职场文书
会计专业毕业生自荐信范文
2013/12/20 职场文书
端午节活动总结
2014/08/26 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
毕业生对母校寄语
2015/02/26 职场文书
对公司的意见和建议
2015/06/04 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python