Python实现 版本号对比功能的实例代码
作者:Andrea-Pirlo 发布时间:2022-07-22 05:53:59
标签:Python,版本号
下面先给大家介绍python实现版本号对比功能,具体内容如下所示:
相同位置版本号大小比较:
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 "版本号格式不对,正确的应该是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.版本号以点为分隔,逐位比较
总结
以上所述是小编给大家介绍的Python实现 版本号对比功能的实例代码,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://www.cnblogs.com/ailiailan/archive/2019/04/18/10728059.html
0
投稿
猜你喜欢
- 1. 引言在Python中有很多好玩的花式打印,对厉害的高手来说可能是小菜一碟,对入门的小白来说往往让人望而退步,我们今天就来挑战下面三个常
- 前言快过年了,又到了公司年底评级的时候了。今年的评级和往常一下,每个人都要填写公司的民主评议表,给各个同事进行评价打分,然后部门收集起来根据
- laravel入门简介作为PHP最常用的框架之一,Laravel的框架目录布置得尤其清晰,适用于各种类型的项目开发。今天来记录下larave
- 有时会在存储过程中处理一些XML格式的数据,所以会用到sp_xml_preparedocument,他可以将XML数据进行读取,然后使用 M
- 本文实例讲述了Python内存管理。分享给大家供大家参考,具体如下:a = 1a是引用,1是对象。Python缓存整数和短字符串,对象只有一
- 配置Laravel 的邮件服务可以通过 config/mail.php 配置文件进行配置。邮件中的每一项都在配置文件中有单独的配置项,甚至是
- 热的东西显然会变凉。房间会会人沮丧地变得凌乱。几乎同样,消息会失真。逆转这些情况的短期策略分别是重新加热、 做卫生和使用 Hop
- //清空form选择 function clearForm(id){ var formObj = document.getElementBy
- 在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。本文重点给大家介绍python中正则表达式 re.findall
- 1.本人第一次学python做出来的,当时满满的成就感,当作纪念!!!!!非常简单,复制即可使用代码块import json#把字符串类型的
- 一、传入的参数类型要求不同:1、 file.write(str)需要传入一个字符串做为参数,否则会报错。write( "字符串&q
- 加载1个或多个要素<template> <div id="map" style="
- Balloons(气球状提示)问题摘要气球状提示(Balloon)是一个小型的弹出窗口,用于通知用户出现非关键性问题或控件处于某种特殊情况。
- 前言中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据
- 昨天同事给你我一个有问题的数据库,叫我修复一下因为客户那边需要这个数据库,这个数据库只有一个mdf文件和一个ldf文件,当我附加数据库的时候
- 整理总结一下python中最常用的一些时间戳和时间格式的转换第一部分:获取当前时间和10位13位时间戳import datetime, ti
- SQL Server Sa用户相信大家都有一定的理解,下面就为您介绍SQL Server 2000身份验证模式的修改方法及SQL Serve
- 如下所示:a = [1,2,3,4,5,6,7,8,9,10,11]step = 3b = [a[i:i+step] for i in ra
- 字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,如果找到字符串,则返回字符的起始位置 (0表示第一个字符,1表
- 背景在本地开发vue项目的时候,当你习惯了proxyTable解决本地跨域的问题,切换到nuxt的时候,你会发现,添加了proxyTable