Python

Python调用C/C++动态链接库的方法详解

本文以实例讲解了Python调用C/C++DLL动态链接库的方法,具体示例如下:示例一:首先,在创建一个DLL工程(本例创建环境为VS2005),头文件://hello.h#ifdefEXPORT_HELLO_DLL#defineHELLO_API__declspec(dllexport)#else#defineHELLO_API__declspec(dllimport)#endifextern"C"{HELLO_APIintIntAdd(int,int)

系统 2019-09-27 17:47:15 2141

Python

Python实现命令行通讯录实例教程

1、实现目标编写一个命令行通讯录程序,可以添加、查询、删除通讯录好友及电话2、实现方法创建一个类来表示一个人的信息。使用字典存储每个人的对象,名字作为键。使用pickle模块永久地把这些对象存储下来。使用字典内建的方法添加、删除修改人员信息。3、思维导图4、编写伪代码#1.创建字典用来存储通讯录信息#2.创建人员类,包含姓名、关系、电话三个属性#3.创建操作类,包含增加、查询、删除人员,退出,保存并退出五个方法#4.程序运行#5.判断通讯录文件是否存在#6

系统 2019-09-27 17:38:45 2141

Python

python网络编程 使用UDP、TCP协议收发信息详解

UDPUDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要连接,所以可以实现广播发送。UDP传输数据时有大小限制,每个被传输的数据报必须限定在64KB之内。UDP是一个不可靠的协议,发送方所发送的数据报并不一定以相同的次序到达接收方。udp通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可,类似于生活中,"写信"。客户端:fromsocketimportsocket,AF_INET,SOCK_DGRAM#创

系统 2019-09-27 17:57:08 2140

Python

在Python中表示一个对象的方法

在Python中一切都是对象。如果要在Python中表示一个对象,除了定义class外还有哪些方式呢?我们今天就来盘点一下。0x00dict字典或映射存储KV键值对,它对查找、插入和删除操作都有比较高效率。用一个dict对象可以非常容易的表示一个对象。dict的使用也很灵活,可以修改、添加或删除属性。>>>student={'name':'jack','age':18,'height':170}>>>student{'name':'jack','age':

系统 2019-09-27 17:56:53 2140

Python

python基础之流程控制(3)

1.python语句的分类1.单行代码一行的python代码2.代码块/组:以冒号作为开始,用缩进划分相同作用域,这样的结构称之为代码块,是一个整体。作用域是指作用范围。作用区域,使用了相同的缩进,即有相同的作用域。缩进:一个table距离或者四个空格。注意:代码块/组中严格区分空格和table,不能混合使用,必须只使用一种方式缩进!2.流程控制的分类流程控制:对计算机执行代码的管控就是流程控制。分类:1.顺序结构2.分支结构/选择结构3.循环结构3.顺序

系统 2019-09-27 17:56:11 2140

Python

Python程序设计模式

Python设计模式设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。所有的设计模式示例都是来源于菜鸟教程,每个设计模式的UML都可以在菜鸟教程中找到相应的示例github地址:Python设计模式以工厂模式为例:工厂模式在菜鸟教程中的UML图为工厂

系统 2019-09-27 17:55:33 2140

Python

浅谈Python基础之I/O模型

一、I/O模型IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。同步(synchronous)IO和异步(asynchronous)IO,阻塞(blocking)IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronousI

系统 2019-09-27 17:55:10 2140

Python

Python中的asyncio代码详解

asyncio介绍熟悉c#的同学可能知道,在c#中可以很方便的使用async和await来实现异步编程,那么在python中应该怎么做呢,其实python也支持异步编程,一般使用asyncio这个库,下面介绍下什么是asyncio:asyncio是用来编写并发代码的库,使用async/await语法。asyncio被用作多个提供高性能Python异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。asyncio往往是构建IO密集型和高层级

系统 2019-09-27 17:54:52 2140

Python

Python多线程同步Lock、RLock、Semaphore、Event实例

一、多线程同步由于CPython的python解释器在单线程模式下执行,所以导致python的多线程在很多的时候并不能很好地发挥多核cpu的资源。大部分情况都推荐使用多进程。python的多线程的同步与其他语言基本相同,主要包含:Lock&RLock:用来确保多线程多共享资源的访问。Semaphore:用来确保一定资源多线程访问时的上限,例如资源池。Event:是最简单的线程间通信的方式,一个线程可以发送信号,其他的线程接收到信号后执行操作。二、实例1)L

系统 2019-09-27 17:54:05 2140

Python

python中如何对数据进行各种排序?

转载:https://www.cnblogs.com/fujian-code/p/7501795.htmlPython列表具有内置的list.sort()方法,可以在原地修改列表。还有一个sorted()内置的函数从迭代构建一个新的排序列表。在本文中,我们将探讨使用Python排序数据的各种技术。转自http://mp.weixin.qq.com/s?__biz=MzI5NDY1MjQzNA==&mid=2247484360&idx=2&sn=5e0d78

系统 2019-09-27 17:53:24 2140

Python

opencv-python 图像灰度变换

灰度变换作为一种图像预处理技术可以显著的改善图像的质量,下面将介绍几种灰度变换的方法1.gamma变换Gamma变换是对输入图像灰度值进行的非线性操作,使输出图像灰度值与输入图像灰度值呈指数关系:s=crλs=cr^{\lambda}s=crλ这个指数即为Gamma。Gamma变换就是用来图像增强,其提升了暗部细节,简单来说就是通过非线性变换,让图像从暴光强度的线性响应变得更接近人眼感受的响应,即将漂白(相机曝光)或过暗(曝光不足)的图片,进行矫正。经过G

系统 2019-09-27 17:52:58 2140

Python

推荐11个实用Python库

1)delorean非常酷的日期/时间库复制代码代码如下:fromdeloreanimportDeloreanEST="US/Eastern"d=Delorean(timezone=EST)2)prettytable可以在浏览器或终端构建很不错的输出复制代码代码如下:fromprettytableimportPrettyTabletable=PrettyTable(["animal","ferocity"])table.add_row(["wolverin

系统 2019-09-27 17:52:49 2140

Python

关于Python内存分配时的小秘密分享

前言Python中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数。本文将会频繁地使用该模块的getsizeof()方法,因此,我先简要介绍一下:该方法用于获取一个对象的字节大小(bytes)它只计算直接占用的内存,而不计算对象内所引用对象的内存这里有个直观的例子:importsysa=[1,2]b=[a,a]#即[[1,2],[1,2]]#a、b都只有两个元素,所以直接占用的大小相等sys.get

系统 2019-09-27 17:51:00 2140

Python

python基础知识学习——装饰器

**装饰器**1.装饰器的概念装饰器的本质就是一个函数,它的作用是为其他函数添加一个新的功能,但是不改变原函数的源代码和调用方式。装饰器的两大原则:不修改被修饰函数的源代码不修改被修饰函数的调用方式2.装饰器的知识储备(或者我们可以理解成,一个装饰器是由什么组成)装饰器=高阶函数+函数嵌套+闭包3.装饰器的实现首先我们定义一个累加求和的函数importtimedefcal():res=0foriinrange(100):res+=itime.sleep(1

系统 2019-09-27 17:50:53 2140

Python

简单理解Python中基于生成器的状态机

简单生成器有许多优点。生成器除了能够用更自然的方法表达一类问题的流程之外,还极大地改善了许多效率不足之处。在Python中,函数调用代价不菲;除其它因素外,还要花一段时间解决函数参数列表(除了其它的事情外,还要分析位置参数和缺省参数)。初始化框架对象还要采取一些建立步骤(据TimPeters在comp.lang.python上所说,有100多行C语言程序;我自己还没检查Python源代码呢)。与此相反,恢复一个生成器就相当省力;参数已经解析完了,而且框架对

系统 2019-09-27 17:49:57 2140