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

2021-09-25 17:36:30 字數 1387 閱讀 9476

# -*- coding: utf-8 -*-

__author__ = 'ypp'

import re

def versioncompare(v1="1.1.1", v2="1.2"):

v1_check = re.match("\d+(\.\d+)", v1)

v2_check = re.match("\d+(\.\d+)", 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):

elif v2_len > v1_len:

for i in range(v2_len - v1_len):

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.版本號以點為分隔,逐位比較

比較版本號

題目 比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 ...

比較版本號

比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 也不是...

比較版本號

比較版本號 比較兩個版本號 version1 和 version2。如果 version1 version2 返回1,如果 version1 version2 返回 1,除此之外返回0。你可以假設版本字串非空,並且只包含數字和.字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5不是 兩個半 ...