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.版本号以点为分隔,逐位比较

  • 相关阅读:
    spark学习
    推荐系统-摘录
    matplotlib安装问题解决
    秒杀系统分析
    大数据常用启动命令
    推荐系统简介
    java面试-JVM内存结构
    推荐算法-基于内容的推荐
    推荐算法-基于模型的协同过滤
    监督学习之模型评估与选择
  • 原文地址:https://www.cnblogs.com/sunshineapple/p/6677987.html
Copyright © 2011-2022 走看看