最近在OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。根据网上的教程,PythonOpenCV的轮廓提取函数会返回两个值,第一个为轮廓的点集,第二个是各层轮廓的索引。但是实际调用时我的程序报错了,错误内容如下:toomanyvaluestounpack(expected2)其实是接受返回值不符,如果你仅仅使用一个变量a去接受返回值,调用len(a),你会发现长度为3,也就是说这个函数实际上返回了三个值第一个
系统 2019-09-27 17:54:01 1893
1.效果图:2.代码:#文档字符串(docstr)是函数使用说明#用法:在函数第一行写一个字符串deffn(*nums):'''函数的作用:计算任意数值的总和函数的参数:*nums会接受所有传进来的值,保存到一个元组中(装包)'''print(nums,type(nums))#定义一个变量,用来保存总和result=0forninnums:result+=nreturnresultprint(fn(2,5,7,8))拓展:help()函数效果图:查询自定义
系统 2019-09-27 17:54:01 1893
本文主要借鉴并综合了以下两个博客的内容(样本生成和流图构建训练),并在其基础上绘制了拟合后的直线和“训练次数-代价函数值”曲线,可更直观的观察训练效果:https://www.cnblogs.com/xianhan/p/9090426.htmlhttps://www.cnblogs.com/selenaf/p/9102398.html具体步骤如下:步骤1.在很多情况下,初学者都没有样本库,一般可自建样本库。使用random函数随机初始化样本库:num_po
系统 2019-09-27 17:53:53 1893
从我开始学习python的时候,我就开始自己总结一个python小技巧的集合。后来当我什么时候在StackOverflow或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!当时我会努力的自己尝试一下这段代码,直到我懂了它的整体思路以后,我就把这段代码加到我的集合里。这篇博客其实就是这个集合整理后一部分的公开亮相。如果你已经是个python大牛,那么基本上你应该知道这里面的大多数用法了,但我想你应该也能发现一些你不知道的新技巧。而如果你
系统 2019-09-27 17:53:38 1893
Python面向对象编程——绑定方法与非绑定方法一、类中定义的函数分成两大类1、绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入1)绑定到类的方法:用classmethod装饰器装饰的方法。为类量身定制类.boud_method(),自动将类当作第一个参数传入(其实对象也可调用,但仍将类当作第一个参数传入)2)绑定到对象的方法:没有被任何装饰器装饰的方法。为对象量身定制对象.boud_method(),自动将对象当作第一个参数传入(属于类的函数
系统 2019-09-27 17:53:30 1893
classA:def__init__(self,info={}):self.info=infodef__getattr__(self,item):returnself.info[item]a=A()a.age=123print(a.age)a.name=123print(a.name)a.xis=123print(a.xis)print(a.__dict__)
系统 2019-09-27 17:53:25 1893
python默认环境一般是ascii编码方式,因此Python自然调用ascii编码解码程序去处理字符流,当字符流不属于ascii范围内,就会抛出异常(ordinalnotinrange(128))。参考可通过如下方式查看默认环境编码方式:importsysprintsys.getdefaultencoding()问题解决有两种方式:1、修改默认环境编码方式为utf-8importsysreload(sys)#不加这个会报”找不到setdefaultenc
系统 2019-09-27 17:52:42 1893
概述如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。GIL概览有如下代码:staticPyThread_type_lockinterpreter_lock=0;/*ThisistheGIL*/这行代码位于Python2.7源码ceval.c
系统 2019-09-27 17:52:39 1893
由于工作的需求,需要用python做一个类似网络爬虫的采集器。虽然Python的urllib模块提供更加方便简洁操作,但是涉及到一些底层的需求,如手动设定User-Agent,Referer等,所以选择了直接用socket进行设计。当然,这样的话,需要对HTTP协议比较熟悉,HTTP协议这里就不做讲解了。整个python的代码如下:#!/usr/binenvpythonimportsockethost="www.baidu.com"se=socket.so
系统 2019-09-27 17:52:30 1893
在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异主要体现在以下几个方面:1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;2.Python2打印时可以不加括号:print'helloworld',Python3则需要加括号print("helloworld")3.Python2中,input要求输入的字符串必须要加引号,为了避免读取非字符串类型发生的
系统 2019-09-27 17:52:30 1893