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

