下面先给大家介绍python实现版本号对比功能,具体内容如下所示:
相同位置版本号大小比较:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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 比较两个版本号大小
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# -*- 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