• Python with提前退出:坑与解决方案

    问题的起源 早些时候使用with实现了一版全局进程锁,希望实现以下效果: 全局进程锁本身不用多说,大部分都依靠外部的缓存来实现的,redis上用的是setnx,有时候根据需要加上缓存击穿问题、随机延后以防止对缓存本身造成压力。 当时同样写了单元测试来测试这段代码的有效性: 看起来非常完美地通过了。 这样的一个全局进程锁是通过__enter__方法抛出异常, __exit__方法中捕获异常来实现的: 看起来还不错,毕竟单元测试都过了。 但是,这样的实现是有问题的: 原因在于__exit__ 的执行...

    Python开发 2020年7月24日
  • 车牌检测和识别的Python应用软件实现

    1.车牌检测和识别项目介绍 车牌的检测和识别的应用非常广泛,比如交通违章车牌追踪,小区或地下车库门禁。在对车牌识别和检测的过程中,因为车牌往往是规整的矩形,长宽比相对固定,色调纹理相对固定,常用的方法有:基于形状、基于色调、基于纹理、基于文字特征等方法,近年来随着深度学习的发展也会使用目标检测的一些深度学习方法。该项目主要的流程如下图所示: 1.输入原始图片,通过二值化,边缘检测,和基于色调的颜色微调等办法检测出原图中的车牌号的位置;2.把检测到的车牌(ROI)裁剪,为车牌号的识别做准备;3.基...

    技术干货 2020年7月23日
  • Python with提前退出:坑与解决方案

    问题的起源 早些时候使用with实现了一版全局进程锁,希望实现以下效果: 全局进程锁本身不用多说,大部分都依靠外部的缓存来实现的,redis上用的是setnx,有时候根据需要加上缓存击穿问题、随机延后以防止对缓存本身造成压力。 当时同样写了单元测试来测试这段代码的有效性: 看起来非常完美地通过了。 这样的一个全局进程锁是通过__enter__方法抛出异常, __exit__方法中捕获异常来实现的: 看起来还不错,毕竟单元测试都过了。 但是,这样的实现是有问题的: 原因在于__exit__ 的执行...

    Python开发 2020年7月22日
  • 你都知道哪些好用的python工具?

    工欲善其事必先利其器,一个好的工具能让起到事半功倍的效果,Python社区提供了足够多的优秀工具来帮助开发者更方便的实现某些想法,下面这几个工具给我的工作也带来了很多便利,推荐给追求美好事物的你。 Python Tutor Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或学生可以直接在 Web 浏览器中编写 Python 代码,并逐步可视化地运行程序。如果你不知道代...

    Python开发 2020年7月21日
  • 学习程序员必知必会的基础算法(收藏)

    近年来学习python的程序员愈来愈多,有的同学选择了python培训机构,也有的人觉得自己天赋好选择了自学不管大家怎么去学习,在学习python基础的过程中,肯定离不开的就是基础算法,今天就为大家介绍几大学习中的基础算法。 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。 事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以...

    Python开发 2020年7月21日
  • 说声谢谢!给你需要的NumPy知识

    Python虽然是一门比较好入门的语言,相较于其他语言来说是一门比较简单的语言。不过有一个很重要的问题就是,即使Python 语言的很多方法不用手打都已经被封装,可以Python初学者还是要学习很多东西。下面我结合了一些经常用到的NumPy基础知识送给大家。 基础知识 NumPy 主要的运算对象为同质的多维数组,即由同一类型元素(一般是数字)组成的表格,且所有元素通过正整数元组进行索引。在 NumPy 中,维度 (dimension) 也被称之为轴线(axes)。 比如坐标点 [1, 2, 1]...

    Python开发 2020年7月20日
  • 谷歌SRE与运维工作的思考

    运维部门要保障产品业务稳定性,开发部门要想随时随地快速上线新功能,而线上的故障往往是由新的变更导致的——不管是新发布了版本,还是修改配置,或者是改变了用户某些行为导致流量负载产生变化,传统意义上这两个部门在本质目标上是相对的。所以运维部门往往会要求开发部门对变更或发布做控制,并且规定要走一些繁琐的流程;而开发部门会想法设法绕过这些繁琐步骤,以支持新功能更快上线。 谷歌的工作方式:面对运维部门与开发部门之间的产品稳定性与迭代创新速度之间的矛盾,允许产品在设定的“错误预算”内发生异常,利用可量化的S...

    Linux云计算 2020年7月17日
  • 适合Python入门基础书籍

    对学习程序的同学而言,有一本好的学习python的课本,就如同有一个好的老师一样,所以本文为大家介绍书几本Python程序员必备的工具书!让学习python的同学赢在起跑线上。为Python程序员熟练掌握和使用做一些指导。 Python 3标准库 对程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案,所以本书是所有Python程序员都必备的工具书!全书以案例驱动的方式讲解了标准库中数百个模块的使用方法(如何工作)和工作原理(为什么要这样工作),比标准库的...

    技术干货 2020年7月16日
  • 你知道在终端执行 Python 代码的方式吗?

    1、通过标准输入和管道因为如何用管道传东西给一个进程是属于 shell 的内容,我不打算深入解释。毋庸置疑,你可以将代码传递到 Python 中。 # 管道传内容给 pythonecho "print('hi')" | python 如果将文件重定向到 Python,这显然也可以。 # 重定向一个文件给 pythonpython < spam.py 归功于 Python 的 UNIX 传统,这些都不太令人感到意外。 2、通过 -c 指定的字符串如果你只需要快速地检查某些内容,则可以在命令行...

    技术干货 2020年7月16日
  • Python 运行时遇到的这些错误

    对于刚入门的Python新手,在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲。随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题。下面整理了在Python运行中常见的错误,希望能够帮助到大家。 1、忘记在if,for,def,elif,else,class等声明末尾加 : 会导致“SyntaxError :invalid syntax”如下: if spam == 42 print( Hello! ) 2、使用= 而不是 ==。也会导致“SyntaxE...

    技术干货 2020年7月15日
历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、容器云、Go、Python开发专业人才培训机构!