zoukankan      html  css  js  c++  java
  • 【原创】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 "版本号格式不对,正确的应该是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"))
    

      

    设计思想: 
    1.使用正则表达式判断版本号格式是否正确 
    2.将字符串用”.”分隔成数组 
    3.比较数组长度,将长度短的数组用“0”补齐成相等长度数组 
    4.逐个遍历数组元素,比较大小

    测试用例: 
    1.版本号为空 
    2.版本号含非数字 
    3.版本号长度不一致 
    4.版本号以点为分隔,逐位比较

  • 相关阅读:
    Java Code Template
    FTP服务器文件上传的代码实现
    CentOS 7 安装vsftpd 服务器
    Nginx 403 forbidden的解决办法
    CentOS 7中使用iptables
    CentOS下安装Nginx服务器
    HTML5:web socket 和 web worker
    HTML5新增元素、标签总结
    js页面刷新之实现框架内外刷新(整体、局部)
    js页面刷新之实现定时刷新(定时器,meta)
  • 原文地址:https://www.cnblogs.com/sunshineapple/p/6677987.html
Copyright © 2011-2022 走看看