![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 59
gtfaww
好好学习,天天向上。
展开
-
Python set
集合 (set) ⽤用来存储⽆无序不重复对象。所谓不重复对象,除了不是同⼀一对象外,还包括 "值" 不能相同。集合只能存储可哈希对象,⼀一样有只读版本 frozenset。判重公式:(a is b) or (hash(a) == hash(b) and eq(a, b))在内部实现上,集合和字典⾮非常相似,除了 Entry 没有 value 字段。集合不是序列类型,不能像列表那样按转载 2016-10-30 21:13:23 · 274 阅读 · 0 评论 -
python 函数
当编译器遇到 def,会⽣生成创建函数对象指令。也就是说 def 是执⾏行指令,⽽而不仅仅是个语法关键字。可以在任何地⽅方动态创建函数对象。⼀一个完整的函数对象由函数和代码两部分组成。其中,PyCodeObject 包含了字节码等执⾏行数据,⽽而 PyFunctionObject 则为其提供了状态信息。函数声明:def name([arg,... arg = value,...转载 2016-10-31 20:56:06 · 387 阅读 · 0 评论 -
python 装饰器
装饰器 (Decorator) 在 Python 编程中极为常⻅见,可轻松实现 Metadata、Proxy、 AOP 等模式。简单点说,装饰器通过返回包装对象实现间接调⽤用,以此来插⼊入额外逻辑。语法看上去和 Java Annotation、C# Attribute 类似,但不仅仅是添加元数据。>>> @check_args... def test(*args):... pr转载 2016-11-01 21:24:50 · 203 阅读 · 0 评论 -
python 迭代器
在 Python ⽂文档中,实现接⼝口通常被称为遵守协议。因为 "弱类型" 和 "Duck Type" 的缘故,很多静态语⾔言中繁复的模式被悄悄抹平。1 迭代器迭代器协议,仅需要 __iter__() 和 next() 两个⽅方法。前者返回迭代器对象,后者依次返回数据,直到引发 StopIteration 异常结束。最简单的做法是⽤用内置函数 iter(),它返回常转载 2016-11-02 13:30:40 · 240 阅读 · 0 评论 -
python 异常
异常不仅仅是错误,还是⼀一种正常的跳转逻辑。1 异常除多了个可选的 else 分⽀支外,与其他语⾔言并⽆无多⼤大差别。>>> def test(n):... try:... if n % 2:... raise Exception("Error Message!")... except Exception as ex:... print "Exception转载 2016-11-02 13:34:17 · 441 阅读 · 0 评论 -
python 过滤文本中的HTML标签
最近需要过滤文本中的HTML标签,在网上找了个大神写的python方法:'''过滤HTML中的标签#将HTML中标签等信息去掉#@param htmlstr HTML字符串.'''def filter_tag(htmlstr): re_cdata = re.compile(']*>', re.I) re_script = re.compi转载 2016-11-25 15:21:18 · 6351 阅读 · 1 评论 -
python 写入 excel
今天要把统计数据写入Excel表格,需要用到python的xlwt模块,找了个例子:import xlwtfile = xlwt.Workbook() # 注意这里的Workbook首字母是大写table = file.add_sheet('sheet name') # 新建一个sheettable.write(0,0,'test')转载 2016-11-25 15:22:38 · 952 阅读 · 0 评论 -
哪些 Python 库让你相见恨晚?
知乎用户,A European Swallow.苇叶、Aran He、jerry 等人赞同补充三个有助于自动化日常工作的:sh:sh 1.08 — sh v1.08 documentation可以用 Python 函数的语法去调用 shell 命令,sh 之于 subprocess 类似 requests 之于 urllib2。Watchdog:Watchdog —转载 2016-12-29 16:55:10 · 4983 阅读 · 0 评论 -
python 学习笔记1 Python问答
python 学习笔记1 Python问答python 学习笔记1 Python问答1.人们选择Python的6个主要原因是什么?2.列举如今正在使用Python的著名组织?3.什么原因让你不使用Python?4.你可以用Python做什么?5.在Python中import this 有什么用?1.人们选择Python的6个主要原因是什么?软件质量、开发...原创 2018-06-29 15:27:26 · 914 阅读 · 0 评论 -
centos7.4 安装pypy
centos7.4 安装pypycentos7.4 安装pypy前言安装pypy安装pip使用pip安装模块启动进程总结前言本来想安装最新版pypy 6.0,安装包安装有很多软件包有版本问题,还没解决。先用yum安装试试效果。安装pypy先安装epel扩展源,然后安装pypy。rpm -ivh http://dl.fedorapr...原创 2018-07-02 17:35:59 · 2075 阅读 · 0 评论 -
pypy 原理
pypy 原理pypy 原理为何 PyPy 是趋势?即时编译: PyPy和它的未来PyPy is Hard to Understand结尾总之:GIL,即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行。常见例子有CPython(JPython不使用GIL)与Rub...转载 2018-07-03 14:33:27 · 7133 阅读 · 0 评论 -
谈谈 Python 程序的运行原理
谈谈 Python 程序的运行原理谈谈 Python 程序的运行原理1. 简单的例子2. 背后的魔法2.1 模块2.2 编译2.3 pyc 文件2.4 字节码指令2.5 Python 虚拟机2.6 import 指令2.7 绝对引入和相对引入2.8 赋值语句2.9 def 指令2.10 动态类型2.11 命名空间 (namespace)2.11.1 dir 函...转载 2018-07-03 14:56:55 · 376 阅读 · 0 评论 -
Python yield与实现
Python yield与实现[TOC] yield的功能类似于return,但是不同之处在于它返回的是生成器。生成器生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器(但是迭代器不一定是生成器)。如果一个函数包含yield关键字,这个函数就会变为一个生成器。生成器并不会一次返回所有结果,而是每次遇到yield关键字后返回相应结果,并保留函数当前...转载 2018-07-05 17:30:24 · 495 阅读 · 0 评论 -
浅析 Python 的类、继承和多态
浅析 Python 的类、继承和多态浅析 Python 的类、继承和多态类的定义访问控制reprstradd继承多态super类的定义假如要定义一个类 Point,表示二维的坐标点:# point.pyclass Point: def __init__(self, x=0, y=0): self.x, self...转载 2018-07-06 16:31:00 · 458 阅读 · 0 评论 -
Python 字典
字典 (dict) 采⽤用开放地址法的哈希表实现。• ⾃自带元素容量为 8 的 smalltable,只有 "超出" 时才到堆上额外分配元素表内存。• 虚拟机缓存 80 个字典复⽤用对象,但在堆上分配的元素表内存会被释放。• 按需动态调整容量。扩容或收缩操作都将重新分配内存,重新哈希。36• 删除元素操作不会⽴立即收缩内存。创建字典:>>> {}? ? ? ? ? ?转载 2016-10-30 21:07:35 · 188 阅读 · 0 评论 -
python 元组
元组 (tuple) 看上去像列表的只读版本,但在底层实现上有很多不同之处。• 只读对象,元组和元素指针数组内存是⼀一次性连续分配的。• 虚拟机缓存 n 个元素数量⼩小于 20 的元组复⽤用对象。在编码中,应该尽可能⽤用元组代替列表。除内存复⽤用更⾼高效外,其只读特征更利于并⾏行开发。基本操作:>>> a = (4)? ? ? ? ? # 少了逗号,就成了普通的括号运算符了。转载 2016-10-30 20:54:54 · 335 阅读 · 0 评论 -
Python yield 使用浅析
初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到底用来做什么,为什么要设计 yield ?本文将由浅入深地讲解 yield 的概念和用法,帮助读者体会 Python 里 yield 简单而强大的功能。13 评论廖 雪峰, 软件工程师, HP2012转载 2016-10-27 16:49:02 · 334 阅读 · 0 评论 -
偏函数functools.partial
函数式编程的思想。可以理解成绑定了一部分参数的函数。作用就是少传参数,更短,更简洁。我之前做的一段用户留存率的程序。需求是这样子的,选择某一天,然后以这天为准,次日留存,3日留存,7日留存,14日留存,30日留存。已有一个获取第几天后的函数 ?12345678转载 2016-10-28 10:39:32 · 383 阅读 · 0 评论 -
Python lambda
在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答。 1、lambda是什么? 看个例子: 1 g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2)转载 2016-10-28 14:29:35 · 326 阅读 · 0 评论 -
python functools模块
unctools.partial作用:functools.partial 通过包装手法,允许我们 "重新定义" 函数签名用一些默认参数包装一个可调用对象,返回结果是可调用对象,并且可以像原始对象一样对待冻结部分函数位置函数或关键字参数,简化函数,更少更灵活的函数参数调用#args/keywords 调用partial时参数def partial(func, *转载 2016-10-28 14:57:02 · 448 阅读 · 0 评论 -
Python字符编码详解
本文简单介绍了各种常用的字符编码的特点,并介绍了在python2.x中如何与编码问题作战 :) 请注意本文关于Python的内容仅适用于2.x,3.x中str和unicode有翻天覆地的变化,请查阅其他相关文档。 尊重作者的劳动,转载请注明作者及原文地址 >.1. 字符编码简介1.1. ASCIIASCII(American Standard Code for转载 2016-10-28 16:10:54 · 440 阅读 · 0 评论 -
python 参数合法性验证实例
python是不带静态检查的动态语言,有时候需要在调用函数时保证参数合法。检查参数合法性是一个显著的切面场景,各个函数都可能有这个需求。但另一方面,参数合法性是不是应该由调用方来保证比较好也是一个需要结合实际才能回答的问题,总之双方约定好,不要都不检查或者都检查就可以了。下面这个模块用于在函数上使用装饰器进行参数的合法性验证。你可以直接执行这个模块进行测试,如果完全没有输出则表示通过。你也转载 2016-10-28 15:09:45 · 2990 阅读 · 0 评论 -
Python装饰器与面向切面编程
今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。1. 装饰器入门1.1. 需求是怎么来的?装饰器的定义很是抽象,我们来看一个小例子。转载 2016-10-28 13:38:59 · 392 阅读 · 0 评论 -
Python 虚拟机
Python 是⼀一种半编译半解释型运⾏行环境。⾸首先,它会在模块 "载⼊入" 时将源码编译成字节码 (ByteCode)。⽽而后,这些字节码会被虚拟机在⼀一个 "巨⼤大" 的核⼼心函数⾥里解释执⾏行。这是导致 Python 性能较低的重要原因,好在现在有了内置 Just-in-time ⼆二次编译器的 PyPy 可供选择。当虚拟机开始运⾏行时,它通过初始化函数完成整个运⾏行环境设置:转载 2016-10-29 20:19:16 · 659 阅读 · 0 评论 -
Python 内存管理
为提升执⾏行性能,Python 在内存管理上做了⼤大量⼯工作。最直接的做法就是⽤用内存池来减少操作系统内存分配和回收操作,那些⼩小于等于 256 字节对象,将直接从内存池中获取存储空间。根据需要,虚拟机每次从操作系统申请⼀一块 256KB,取名为 arena 的⼤大块内存。并按系统⻚页⼤大⼩小,划分成多个 pool。每个 pool 继续分割成 n 个⼤大⼩小相同的 block,这是内存转载 2016-10-29 21:15:12 · 297 阅读 · 0 评论 -
Python 编译
Python 实现了栈式虚拟机 (Stack-Based VM) 架构,通过与机器⽆无关的字节码来实现跨平台执⾏行能⼒力。这种字节码指令集没有寄存器,完全以栈 (抽象层⾯面) 进⾏行指令运算。尽管很简单,但对普通开发⼈人员⽽而⾔言,是⽆无需关⼼心的细节。要运⾏行 Python 语⾔言编写的程序,必须将源码编译成字节码。通常情况下,编译器会将源码转换成字节码后保存在 pyc ⽂文件中转载 2016-10-29 21:20:15 · 374 阅读 · 0 评论 -
Python psutil
psutil (process and system utilities) is a cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network) in Python. It is useful mainl转载 2016-10-29 21:38:26 · 631 阅读 · 0 评论 -
Python 数据类型
boolNone、0、空字符串、以及没有元素的容器对象都可视为 False,反之为 True。>>> map(bool, [None, 0, "", u"", list(), tuple(), dict(), set(), frozenset()])[False, False, False, False, False, False, False, False, False]虽然有点转载 2016-10-30 20:16:39 · 194 阅读 · 0 评论 -
Python 字符串
与字符串相关的问题总是很多,⽐比如池化 (intern)、编码 (encode) 等。字符串是不可变类型,保存字符序列或⼆二进制数据。• 短字符串存储在 arena 区域, str、unicode 单字符会被永久缓存。• str 没有缓存机制,unicode 则保留 1024 个宽字符⻓长度⼩小于 9 的复⽤用对象。• 内部包含 hash 值,str 另有标记⽤用来判断是否被池化。转载 2016-10-30 20:34:18 · 294 阅读 · 0 评论 -
Python list
从功能上看,列表 (list) 类似 Vector,⽽而⾮非数组或链表。• 列表对象和存储元素指针的数组是分开的两块内存,后者在堆上分配。• 虚拟机会保留 80 个列表复⽤用对象,但其元素指针数组会被释放。• 列表会动态调整指针数组⼤大⼩小,预分配内存多于实际元素数量。创建列表:>>> []? ? ? ? ? ? ? ? # 空列表。[]>>> ['a', 'b'] *转载 2016-10-30 20:48:32 · 280 阅读 · 0 评论 -
文件读写
文件读写文件读写读文件file-like Object二进制文件字符编码写文件练习读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),...转载 2018-07-24 16:14:31 · 446 阅读 · 0 评论