溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python實(shí)現(xiàn) 版本號對比功能的實(shí)例代碼

發(fā)布時間:2020-09-17 06:40:30 來源:腳本之家 閱讀:141 作者:Andrea-Pirlo 欄目:開發(fā)技術(shù)

下面先給大家介紹python實(shí)現(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”補(bǔ)齊成相等長度數(shù)組
4.逐個遍歷數(shù)組元素,比較大小

測試用例:

1.版本號為空
2.版本號含非數(shù)字
3.版本號長度不一致
4.版本號以點(diǎn)為分隔,逐位比較

總結(jié)

以上所述是小編給大家介紹的Python實(shí)現(xiàn) 版本號對比功能的實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI