python判断2个版本号大小

此方法唯一的“限制”就是要求版本号之间默认是以.为连接的,当然如果是其他字符连接的话,完全可以在split修改即可,所以严格意义上来说这也不算限制,只能是默认传入的版本号是以.为连接而已。

此外,对于版本号是否长度相等,版本号是否是数字、英文、甚至是数字和英文混合形式,都统统好使。(默认情况下英文字母大于所有int类型的数字)。

class CheckVersion(object):

    def compare(self, version1, version2):
        # 版本号转换为list,使用str是为了兼容版本里带字母的情况
        v1 = [str(x) for x in str(version1).split('.')]
        v2 = [str(x) for x in str(version2).split('.')]

        # 如果2个版本号位数不一致,后面使用0补齐,使2个list长度一致,便于后面做对比
        if len(v1) > len(v2):
            v2 += [str(0) for x in range(len(v1) - len(v2))]
        elif len(v1) < len(v2):
            v1 += [str(0) for x in range(len(v2) - len(v1))]

        # 对2个list进行排序,小的排在前面
        list_sort = sorted([v1, v2])

        print(list_sort[0], list_sort[1])
        # 对排序后的list判断大小
        if list_sort[0] == list_sort[1]:
            print("版本号:{0:12} 等于 版本号:{1:12}".format(version1, version2))
        elif list_sort[0] == v1:
            print("版本号:{0:12} 小于 版本号:{1:12}".format(version1, version2))
        else:
            print("版本号:{0:12} 大于 版本号:{1:12}".format(version1, version2))


if __name__ == '__main__':
    cv = CheckVersion()
    cv.compare('2.ab.1.b', 'str')
    cv.compare('2.ab.1.b', 's.t.r')
    cv.compare('2.ab.1.b', '3.0')
    cv.compare('2.ab.1.b', '2.c.0.1')
    cv.compare('2.0.1.2', '2.0.2.1')
    cv.compare('2.0.1.2', '3')

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值