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 相关文章推荐
Android应用开发中Action bar编写的入门教程
Feb 26 Python
PyQt5每天必学之组合框
Apr 20 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
对Python中class和instance以及self的用法详解
Jun 26 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
Jan 24 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
Python getsizeof()和getsize()区分详解
Nov 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
图书管理程序(二)
2006/10/09 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
php抽象类用法实例分析
2015/07/07 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
心扬JS分页函数代码
2010/09/10 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python操作MongoDB基础知识
2013/11/01 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
详解Python并发编程之创建多线程的几种方法
2019/08/23 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
python和opencv构建运动检测器的实现
2021/03/03 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
大学生自荐书范文
2013/12/10 职场文书
团队队名口号大全
2014/06/06 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2016年教师新年寄语
2015/08/18 职场文书
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS