Python实现 版本号对比功能的实例代码
时间:2020-11-03 13:41:04|栏目: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.版本号以点为分隔,逐位比较
总结