思路:
1、先將不同長度的版本號通過補0變成相同的長度,方便比較(否則無法區別3.9.1和3.9)
2、對每個.分割的部分轉為整數進行比較大小,任意部分有大小區別則不再比較
3、如果比較到最後一部分都相等,那說明是同個版本,如(3.9和3.9.0)
4、為了返回版本原值,所以另外加了個變數儲存補0後的版本
# coding:utf-8
defcompare
(a:str
, b:
str)
:'''比較兩個版本的大小,需要按.分割後比較各個部分的大小'''
lena =
len(a.split(
'.')
)# 獲取版本字串的組成部分
lenb =
len(b.split(
'.')
) a2 = a +
'.0'
*(lenb-lena)
# b比a長的時候補全a
b2 = b +
'.0'
*(lena-lenb)
print
(a2, b2)
for i in
range
(max
(lena, lenb)):
# 對每個部分進行比較,需要轉化為整數進行比較
ifint
(a2.split(
'.')
[i])
>
int(b2.split(
'.')
[i])
:return a
elif
int(a2.split(
'.')
[i])
<
int(b2.split(
'.')
[i])
:return b
else
:# 比較到最後都相等,則返回第乙個版本
if i ==
max(lena, lenb)-1
:return a
versions =
['1.01'
,'2.3'
,'2.12'
,'2.1.0'
,'0.0.01.3'
,'2.154'
]last =
'0.0'
# 給個初始值進行比較
for version in versions:
last = compare(last, version)
# 每次將較大的版本取出,留給下次比較
print
(last)
ps:lenb < lena時, 『.0』乘以負數,結果是空字串 軟體版本號規範
1.軟體版本階段說明 obase 版 此版本表示該軟體僅僅是乙個假頁面鏈結,通常包括所有的功能和頁面布局,但是頁面中的功能都沒有做完整的實現,只是做為整體 的乙個基礎架構。o alpha 版 此版本表示該軟體在此階段主要是以實現軟體功能為主,通常只在軟體開發者內部交流,一般而言,該版本軟體的bug較...
軟體版本號規範
1.軟體版本階段說明 obase 版 此版本表示該軟體僅僅是乙個假頁面鏈結,通常包括所有的功能和頁面布局,但是頁面中的功能都沒有做完整的實現,只是做為整體 的乙個基礎架構。o alpha 版 此版本表示該軟體在此階段主要是以實現軟體功能為主,通常只在軟體開發者內部交流,一般而言,該版本軟體的bug較...
軟體版本號的規範
主版本號 子版本號 修正版本號 編譯版本號 major version number.minor version number revision number build number 示例 1.2.1,2.0,5.0.0 build 13124 管理策略 專案初版本時,版本號可以為 0.1 或 0...