Python实现 版本号对比功能的实例代码


Posted in Python onApril 18, 2019

下面先给大家介绍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实现 版本号对比功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python查看多台服务器进程的脚本分享
Jun 11 Python
快速查询Python文档方法分享
Dec 27 Python
python爬取各类文档方法归类汇总
Mar 22 Python
python实现飞机大战游戏
Oct 26 Python
Python用字典构建多级菜单功能
Jul 11 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
python解析命令行参数的三种方法详解
Nov 29 Python
python实现逻辑回归的示例
Oct 09 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
python 模块重载的五种方法
Apr 24 Python
教你怎么用python爬取爱奇艺热门电影
May 20 Python
Python网络爬虫之爬取微博热搜
Apr 18 #Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
Apr 18 #Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 #Python
Python面向对象总结及类与正则表达式详解
Apr 18 #Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 #Python
详解python数据结构和算法
Apr 18 #Python
python基础知识(一)变量与简单数据类型详解
Apr 17 #Python
You might like
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
php中的一个中文字符串截取函数
2007/02/14 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
javascript实现时钟动画
2020/12/03 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python开发游戏的前期准备
2019/05/05 Python
Python排序函数的使用方法详解
2020/12/11 Python
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
几个MySql的面试题
2013/04/22 面试题
日语专业毕业生求职信
2013/12/04 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
21岁生日感言
2014/02/27 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
委托书范文
2014/04/02 职场文书
股东大会通知
2015/04/24 职场文书
公司催款律师函
2015/05/27 职场文书
感恩教育观后感
2015/06/17 职场文书
Python语言内置数据类型
2022/02/24 Python
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android