遇到1.3.2.1与1.3这种不规则的版本号比较问题,分享一下。
def compare_version( aa, bb,sp):
aa = str(aa)
bb = str(bb)
aa = aa.split(sp)
bb = bb.split(sp)
if len(aa) > len(bb):
for ran in range(len(aa) - len(bb)):
bb.append("0")
elif len(aa) == len(bb):
pass
else:
for ran in range(len(bb) - len(aa)):
aa.append("0")
if aa == bb:
return 1
for k in range(len(aa)):
if aa[k] > bb[k]:
return 1
elif aa[k] == bb[k]:
continue
else:
return 2
def pick_up_latest_version(version1, version2,Separator="."):
flag = compare_version(version1, version2,Separator)#返回最大版本号的标识
if flag == 1:
return version1#返回最大版本号
elif flag == 2:
return version2
if __name__ == '__main__':
test1="5.3.2.1"
test2="5.5.1"
result=pick_up_latest_version(test1,test2)#调用pick_up_latest_version
print(result)