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

顾星河
顾星河
发布时间:2026-10-13 | 4人浏览过
原创

本文详细介绍如何使用Python实现版本号对比功能。通过正则表达式校验格式,利用字符串分割与补齐策略处理不同长度的版本序列,并逐位比较数值大小。文中提供了完整的函数代码及涵盖空值、非法字符、长度不一致等场景的测试用例,帮助开发者快速掌握版本比较逻辑。

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")

此外,下文将展示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 相关产品和应用

全部下载

专题列表