
Python
走出去拍拍照
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python多态与函数作用域
多态在python中,一切皆对象,包括函数也是对象。因为python是动态类型的语言,所以它的多态实现非常容易。比如下面这个例子,一个操作的意义取决于被操作对象的类型。def func(a,b): return a * btest1 = func(12,5)print(test1) #60test2 = func('ad',5)print(test2) #adadad...原创 2019-03-14 15:22:27 · 632 阅读 · 0 评论 -
python lamdba表达式详解
简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。我们看下面这个例子!返回一个序列的平方。def f(x): return x*xlis = list(map(f,[y for y in range(10)]))print(lis)上面这个例子如果我们用lamdba来实现的话,只需要如下所示!...原创 2019-05-14 18:23:21 · 974 阅读 · 0 评论 -
python的with语句浅析
with语句是在python2.5开始引进的一种与异常处理相关的功能。在讲with语句之前,先说说上下文管理器,因为使用上下文管理器最广泛的就是with语句了。基本概念上下文管理协议(Context Management Protocol):包含方法 __enter__() 和 __exit__(),支持该协议的对象要实现这两个方法。上下文管理器(Context Manager):支持...原创 2019-05-09 23:37:24 · 309 阅读 · 0 评论 -
python多线程浅析
线程与进程操作系统原理相关的书,基本都会提到一句很经典的话: "进程是资源分配的最小单位,线程则是CPU调度的最小单位"。线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。进程和线程的区别主要有:1、进程之间是相互独立的,多进程中,同一个变量,各自有...原创 2019-05-10 19:07:12 · 332 阅读 · 0 评论 -
python网络编程基础
网络架构网络中我们采用客户端/服务器结构的方式,其中服务器就是为一个或多个客户端提供服务,它唯一的目的就是等待客户端的请求,并响应请求,然后等待更多的请求;而客户端因特定的请求而联系服务器,并发送数据,然后等待服务器的回应,最后完成请求或给出故障的原因。套接字网络编程的一个基本组件是套接字(socket)。最初它是为同一个主机上的应用程序所创建,也就是应用在进程间的通信上面。今天我们要...原创 2019-05-22 19:10:25 · 251 阅读 · 0 评论 -
列表与元组进阶篇
内置序列类型分类大部分书里面,我们的序列都是被分为可变序列和不可变序列,其中可变序列有list/bytearray/array.array/collections.deque/memoryview,而不可变序列有tuple/str/bytes。内置序列可以分为容器序列和扁平序列,其中容器序列是它们所包含的任意类型的对象是引用,而扁平序列里存放的是值;而且屏边序列是一段连续的内存空间。其实区...原创 2019-05-13 17:20:21 · 230 阅读 · 0 评论 -
pythonchallenge解法源码(1-5)
今天看到一个好玩的游戏,搜了一下,很早的一个项目了,想着这样去熟悉一下python的一些用法,下面把每一关的源码贴出来!第一关import stringtext = '''g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddg...原创 2019-06-09 00:10:26 · 343 阅读 · 0 评论 -
pythonchallenge解法源码(6-10)
第六关import zipfilecomments = []num = '90052'suffix = '.txt'with zipfile.ZipFile('channel.zip') as zf: while True: try: zi = zf.getinfo(num + suffix) #获取zip文档中指定文件的信息 ...原创 2019-06-10 00:51:52 · 204 阅读 · 0 评论 -
从生成器到协程
本文希望能够通过生成器到协程的历程,从这个角度说明一下协程!递归我们以斐波拉契数列的运算来说明我们的生成器,对于斐波拉契数列,我们生成其第n个数。首先我们利用递归的方式实现。import timedef clock(func): def clocked(*args): t0 = time.perf_counter() result = fu...原创 2019-06-25 18:03:05 · 618 阅读 · 0 评论 -
python从闭包到装饰器
前面写过一篇《原来这就是python装饰器》,主要介绍蛇什么是装饰器,这一篇主要介绍装饰器所运用到的技术原理,最终说明装饰器的工作原理!python如何判断变量是不是局部变量?如下的例子:b = 6def f1(a): print(a) print(b) b = 9 print(b)if __name__ == "__main__": ...原创 2019-06-18 17:37:07 · 442 阅读 · 1 评论 -
多线程从入门到放弃
在前面《python多线程浅析》一文中,我比较笼统的写了关于多线程的一些东西,本文准备比较详细的介绍一下多线程,从最基础的创建多线程开始,探讨关于锁、通信机制、线程池等内容!单线程、多线程、多进程的对比首先,我们通过以下四个场景,来对比以下单线程、多线程、多进程处理能力的强弱!四个场景分别是CPU计算密集型、磁盘IO密集型、网络IO密集型、还有我们模拟的IO密集型。代码如下:impo...原创 2019-07-01 22:06:50 · 426 阅读 · 0 评论 -
python元类浅析
一切皆对象在python中,一切皆对象,不管是数字、字符串、列表、元组、字典。都是对象。例如:i = 10s = "asd"nums = [1,2,3]dict = {"asd":"qwe"}tup = (2,4,6,8)print(type(i))print(type(s))print(type(nums))print(type(dict))print(type(t...原创 2019-05-09 17:13:00 · 171 阅读 · 0 评论 -
Pandas基础篇
Pandas是基于NumPy构建的,让以NumPy为中心的应用变得更加简单。Pandas的数据结构主要有两个:Series和DataFrame。SeriesSeries是一种类似于一维数组的对象,它由数据和索引两部分构成,你可以把它理解成一种字典,同时它可以由字典创建而来。索引在左边,值在右边。如果没有指定索引,那么它的索引默认从0开始。我们可以分别用index和values来输出索引...原创 2019-04-02 23:55:07 · 252 阅读 · 0 评论 -
NumPy进阶篇
NumPy数据类型体系前面我们说过用dtype来指定数据的类型,有时我们会查看一个数组是属于哪一类,我们可以利用np.issubdtype函数来查看这个值是否属于这一类,而且还可以利用mro方法来查看其所有父类。test = np.ones(5,dtype=np.int32)print(np.issubdtype(test.dtype,np.signedinteger))print(...原创 2019-04-01 21:09:27 · 792 阅读 · 0 评论 -
python函数参数类型与参数传递
参数传递参数的传递是通过自动将对象赋值给本地变量名来实现的。在函数运行时,函数头部的参数名是一个新的、本地的变量名,这个变量名是在函数的本地作用域内存在。参数的传递本质上就是python赋值的另一个实例而已。我们传递的参数分为可变类型和不可变类型。不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修...原创 2019-03-14 16:32:26 · 1761 阅读 · 0 评论 -
原来这就是python装饰器
我们利用一个生活中的场景来进入装饰器的世界! 我们模拟银行存取款的过程,代码如下:def deposit(): print('存款中...')def withdraw(): print('取款中...')key = 1if key == 1: deposit()else: withdraw() ...原创 2019-03-15 13:19:39 · 465 阅读 · 0 评论 -
python的列表、元组与字典
python支持一种数据结构的基本概念,即容器(container)。容器基本上就是包含其他对象的对象。两种主要的容器就是序列(如列表和元组)与映射(如字典)。在序列中,每个元素都有编号,这个编号我们也可以称之为索引,从0开始递增。而在映射中,每个元素都有名称(也叫做键)。列表(List)列表的特点就是可以修改,而且列表里面啥都能装,其中的元素是有序的。如上图所示,列表的操作支持索...原创 2019-03-11 16:12:02 · 1404 阅读 · 0 评论 -
python中的异常处理
什么是异常?python使用异常对象来表示异常状态,并在遇到错误时引发异常。异常对象未被处理(或捕获)时,程序将终止并显示一条错误信息。如何引发异常?python为我们提供了raise语句来引发异常,并将一个类(必须是Exception的子类)或实例作为参数。注意,我们几乎所有的异常类都是从Exception派生出来的。如何自定义异常类?其实就是和创建普通类,但是该类必须直接或...原创 2019-03-15 18:20:44 · 342 阅读 · 0 评论 -
python面向对象入门
们大部分人的第一门编程语言是C,上课的时候老师告诉我们C是面向过程的语言。面向过程就是教计算机一步一步来,这种编程思维是我们比较容易接受的,或许这就是让我们入门学C的原因吧。后面我们有学到了Java、C++,我们知道它是面向对象的,今天,我们来说说另一个面向对象的语言--python!面向对象的语言有三个特性:封装、继承、多态!后面我们会一一介绍。创建类和对象面向对象编程方式有两个...原创 2019-03-20 15:51:49 · 176 阅读 · 0 评论 -
Python从动态类型到对象拷贝
动态类型在我们的Java、C这些语言中,我们在定义变量的时候,都会指定它的数据类型,但是在python中却没有这样的操作,因为python中的类型是在运行的过程中决定的,而不是同于预先的定义来声明的。python中的变量名和对象是分开的,变量名永远没有任何关联的类型信息,类型只和对象关联。一个变量名当第一次被赋值时被创建,而当新的赋值表达式出现时,它会马上被当前引用的对象所替代。这就是py...原创 2019-03-12 16:27:07 · 122 阅读 · 0 评论 -
python内存管理和垃圾回收机制
python的垃圾回收是采用的引用计数算法,而且在引用计数的基础上辅以标记-清除和分代回收算法。以引用计数算法来跟踪和回收垃圾;以标记-清除来解决对象产生循环引用造成无法回收的问题;以分代回收以空间换时间来进一步提高垃圾回收!我们从它的内存分配开始,说说它的垃圾回收机制!内存分配器 在python中,当要分配内存空间时,不单纯使用malloc/free,而...原创 2019-03-21 16:21:37 · 828 阅读 · 0 评论 -
python迭代器与生成器
迭代器如果给定一个list或tuple,我们可以通过for循环来遍历这个序列,这个遍历我们称之为迭代。在python中,我们通常通过for...in语句来完成。我们知道,有些数据类型我们可以直接作用于for循环,其中一类是集合数据类型,比如list、tuple、dict、set、str等,还有一类就是generator,包括生成器和带yield的generator function。我...原创 2019-03-13 18:09:17 · 247 阅读 · 0 评论 -
python数据规整化基础
这部分的数据规整化主要包括合并、重塑以及转化,其中的转换又包括清理。合并数据集pandas对象中的数据通过一些内置方法进行合并,pandas.merge可以根据一个或多个键将不同DataFrame中的行连接起来;pandas.concat可以沿着一条轴将多个对象堆叠到一起;实例方法combine_first可以将重复数据编接在一起,用一个对象中的值填充另一个对象中的缺失值。默认键连接...原创 2019-04-04 14:35:12 · 349 阅读 · 0 评论 -
NumPy基础篇
python的一个比较大的功能就是数据处理,我们耳熟能详三个工具包分别是NumPy、Pandas以及Matplotlib,其中NumPy用于提供高级的数值编程以及复杂的数据处理任务;Pandas用于数据读取以及数据预处理等工作;Matplotlib用于绘图,完成可视化的工作。我们现在从NumPy开始,介绍这几个工具的基本用法。NumPy的ndarray:一种多维数组对象NumPy最重要...原创 2019-04-01 14:23:01 · 482 阅读 · 0 评论 -
协程进化史:从yield到await
在python2.5的时候,yield关键字可以在表达式中使用,而且生成器API中增加了send()方法,也就是从这个时候开始,生成器可以当作协程使用。在python3.3的时候,PEP380引入了yield from语句,使用它可以将复杂的生成器重构称小型嵌套生成器;而且从这个版本开始,生成器可以返回值,在此之前,在生成器中加入return语句会抛出SyntaxError。在python...原创 2019-06-28 00:15:42 · 1827 阅读 · 0 评论