Python實現(xiàn) 版本號對比功能的實例代碼
下面先給大家介紹python實現(xiàn)版本號對比功能,具體內(nèi)容如下所示:
相同位置版本號大小比較:
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 比較兩個版本號大小
# -*- 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 "版本號格式不對,正確的應(yīng)該是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"))
設(shè)計思想:
1.使用正則表達(dá)式判斷版本號格式是否正確
2.將字符串用”.”分隔成數(shù)組
3.比較數(shù)組長度,將長度短的數(shù)組用“0”補齊成相等長度數(shù)組
4.逐個遍歷數(shù)組元素,比較大小
測試用例:
1.版本號為空
2.版本號含非數(shù)字
3.版本號長度不一致
4.版本號以點為分隔,逐位比較
總結(jié)
以上所述是小編給大家介紹的Python實現(xiàn) 版本號對比功能的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Object arrays cannot be loaded when
這篇文章主要介紹了Object arrays cannot be loaded when allow_pickle=False,本文給大家分享問題解決思路,需要的朋友可以參考下2022-11-11
使用Python實現(xiàn)對PDF文件進(jìn)行密碼保護(hù)
這篇文章主要為大家詳細(xì)了如何使用Python來實現(xiàn)PDF文件的密碼保護(hù),以確保只有授權(quán)的用戶可以訪問文檔,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2024-01-01
詳解pyqt中解決國際化tr()函數(shù)不起作用的問題
本文主要介紹了pyqt中解決國際化tr()函數(shù)不起作用的問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
Python輕量級ORM框架Peewee訪問sqlite數(shù)據(jù)庫的方法詳解
這篇文章主要介紹了Python輕量級ORM框架Peewee訪問sqlite數(shù)據(jù)庫的方法,結(jié)合實例形式較為詳細(xì)的分析了ORM框架的概念、功能及peewee的安裝、使用及操作sqlite數(shù)據(jù)庫的方法,需要的朋友可以參考下2017-07-07
Python解決asyncio文件描述符最大數(shù)量限制的問題
這篇文章主要介紹了Python解決asyncio文件描述符最大數(shù)量限制的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

