Python实现 版本号对比功能的实例代码

yipeiwu_com5年前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实现 版本号对比功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

python 根据时间来生成唯一的字符串方法

我们很多时候,特别是在生成任务的时候,都需要一个唯一标识字符串来标识这个任务,比较常用的有生成uuid或者通过时间来生成。uuid的话可以直接通过uuid模块来生成。如果是时间的话,可以...

详解python校验SQL脚本命名规则

详解python校验SQL脚本命名规则

需求背景 检查脚本文件中SQL语句是否按规范编写,规则如下: 创建表时,表名称需以"t_"开头且均为小写 增加和创建列时,列名称均为小写字母和_组成 创建函数,函数名称需以...

python实现在IDLE中输入多行的方法

在python命令行模式下,在IDLE中输入多行,例如if  else 使用tab的方式,控制缩进 在最后,连续两个回车,表示结束 >>> if stat...

详解Python中expandtabs()方法的使用

 expandtabs()方法返回制表符,即该字符串的一个副本。 '\t'已经使用的空间,可选择使用给定的tabsize(默认8)扩展。 语法 以下是expandtabs()方...

Python文件操作函数用法实例详解

这篇文章主要介绍了Python文件操作函数用法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 字符编码 二进制和字符之间的转换...