Python实现 版本号对比功能的实例代码
作者:Andrea-Pirlo 发布时间:2022-07-22 05:53:59
标签:Python,版本号
下面先给大家介绍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实现 版本号对比功能的实例代码,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.cnblogs.com/ailiailan/archive/2019/04/18/10728059.html
0
投稿
猜你喜欢
- 前言PyEMD是经验模态分解 (EMD)及其变体的Python实现,EMD最流行的扩展之一是集成经验模态分解 (EEMD),它利用了噪声辅助
- 列表的添加1)+ 添加2)append 追加一次只能添加一个元素到列表中,适合用于循环里3)extend 拉伸可一次添加多个元素到列表中4)
- PHP页面中如果不希望出现以下情况: 单引号被转义为 \' 双引号被转义为 \" 那么可以进行如下设置以防止: 方法一:在
- 表单验证是WEB开发中经常遇到的问题,我们以前常见的做法是:在客户端对表单域进行内容的检查,看是否是满足一定的要求或满足一定的结构,比如:是
- 1 引言形态学运算是针对二值图像依据数学形态学集合论方法发展起来的图像处理的方法.其主要内容是设计一整套的变换概念和算法,用以描述图像的基本
- 左右布局,图片的宽度不固定。正好前几天测试闭合浮动元素时发现了overflow的特殊现象,倒是正好可以用在这里。测试通过:ie6/7&nbs
- 阅读Chapter 1 清单Chapter 2 标题总览:不但所有网页都需要有标题,而且如果标记正确的话,他们能为网页设计和易用性
- 在MySQL数据库中导出整个数据库:1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldu
- 一、张量定义张量:TensorFlow的张量是n维数组,类型为tf.Tensor。标量:一个数字 (0阶张量)向量:一维数组 (1阶张量)矩
- 解决SQL2000最大流水号的两个好方法问:请问怎样才能解决ms serer 2000 最大流水号的问题?答:我可以介绍两种方法给你:方法1
- 1 新建类库MyTestDLL2 右击项目“MyTestDLL”-》属性-》生成-》勾选“为COM互操作注册”3 打开 AssemblyIn
- 准备工作去年的时候,青云发表过关于栅格系统的文章 . 我们知道网页的栅格系统是运用固定的格子设计版面布局,使其风格工整简洁. 视觉上来说,栅
- 实例如下:/** * 数字格式转换成千分位 *@param{Object}num */function commafy(num){ &nbs
- 详解Python import方法引入模块的实例在Python用import或者from…import或者from…import…as…来导
- 在编写一些小程序时,我需要比较两个字符串是否相同。一开始的思路是使用ord()函数获取字符的整数表示,但是调试过后发现,ord()函数传入的
- javascript request.setAttribute()详解request.setAttribute()怎么用的?JS
- 在第一部分和第二部分中我们分别介绍了改善网站性能中页面内容和服务器的几条守则,除此之外,JavaScript和CSS也是我们页
- Django 简介Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初
- 具体代码如下所示:# -*- coding: utf-8 -*-import redisimport datetime''&
- ajax 同步请求和异步请求的差异分析,需要的朋友可以参考下。代码一:Synchronize = function(url,param) {