1. 程式人生 > >【原創】python 比較兩個版本號大小

【原創】python 比較兩個版本號大小

?
123456789101112131415161718192021222324252627282930313233343536# -*- coding: utf-8 -*-__author__ = 'ypp'import redef 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.版本號以點為分隔,逐位比較