python cookbook 小结】的更多相关文章

最近一直在看python cookbook.这本书主要讲的是python 语言的一些编程素材.正如它的名字一样,烹饪书.就好像再讲如何处理食材(各种类型的数据),然后再煮菜(算法).打个比方,煮菜随便煮,能吃就行.但是这本书是教你怎么煮得色香味俱全,然后扩展你的视野,认识更多的食材,更多的方法.要想在这个领域更好的发展,对食材选择,食材处理,菜谱火候等等进行更深入的研究,才能煮好一盘好菜. 这本书更加注重于食材的选择(程序操作的数据)和食材的处理(使用这些数据的方法)上,对于具体情况怎么选择食材…
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__main__': 3.物理行与逻辑行; 下面是一个在多个物理行中写一个逻辑行的例子.它被称为明确的行连接. s = 'This is a string. \ This continues the string.' print s 它的输出: This is a string. This continues…
python cookbook学习笔记 第一章 文本(1) 1.1每次处理一个字符(即每次处理一个字符的方式处理字符串) print list('theString') #方法一,转列表 结果:['t', 'h', 'e', 'S', 't', 'r', 'i', 'n', 'g'] for c in 'theString':#方法二,for循环 print c, 结果:t h e S t r i n g print [c for c in 'theString'] #方法三,列表推导式 结果:…
看<Python cookbook>的时候,第9.5部分,"定义一个属性可由用户修改的装饰器",有个装饰器理解起来花了一些时间,做个笔记免得二刷这本书的时候忘了 完整代码:https://github.com/blackmatrix7/python-learning/blob/master/python_cookbook/chapter_9/section_5/attach_wrapper.py 书中的装饰器(书中称之为访问器函数) def attach_wrapper(o…
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/44/ 来源:python黑洞网 内容简介 <Python Cookbook(第3版)中文版>介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测…
这几天没写代码, 练一下代码. 找的书是<python cookbook>第三版的电子书. *这个操作符,运用得好,确实少很多代码,且清晰易懂. p = (4, 5) x, y = p print(x) print(y) s = 'Hello' a, b, c, d, e = s print(a, b, c) data = ['ACME', 50, 91.1, (2012, 12, 21)] _, shares, price, _ = data print(shares, price) def…
<Python Cookbook(第3版)中文版> 1.队列queue的有些方法是线程不安全的,在多线程中最好别用 2.需要限制一段代码的并发访问量时,用信号量.不要把信号量当做普通的锁来用,当做普通的锁来用,其性能不如普通的锁 3.个人对阻塞和挂起的理解:阻塞是被动的,是拿不到需要的资源导致的:挂起是主动地,是某个条件不满足自己的要求,于是wait一会 4.为了避免死锁,每个线程一次之获取一个锁:若一定要获取多个锁,你就需要更高级的死锁避免机制,我们将在 12.5 节介绍 5.解决死锁问题的…
问题 <Python Cookbook>中有这么一个问题,给定一个序列,找出该序列出现次数最多的元素.例如: words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the', 'eyes', "don't", 'look', 'around', 'the', 'ey…
Python CookBook 中文版:https://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.html 英文版:https://d.cxcore.net/Python/Python_Cookbook_3rd_Edition.pdf Data Structures and Algorithms start expressions items = [1, 10, 7, 4, 5, 9] def sum(items): ... h…
Python Cookbook(第3版)中文版介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试.调试以及异常,C语言扩展等. 本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案.书中包含了大量实用的编程技巧和示例代码,并在Python 3.3环境下进行了测试,可以很方便地应用到实际项目中…
看CookBook就像看小说,挑感兴趣的先学习. 所以继<文本>之后,开始<系统管理>. 同样,请善用目录. 发现一个cookbook:好地址 生成随机密码 from random import choice import string def GenPasswd(length = 8,chars = string.letters+string.digits): return ''.join([choice(chars) for i in range(length)]) for i…
1.查找最大或最小的N个元素 import heapq nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2] print(heapq.nlargest(3, nums)) # Prints [42, 37, 23] print(heapq.nsmallest(3, nums)) # Prints [-4, 1, 2] # 可以接受关键字参数,用于更复杂的数据结构 portfolio = [ {'name': 'IBM', 'shares': 100, 'p…
  字典(dict)结构是Python中常用的数据结构,笔者结合自己的实际使用经验,对字典方面的相关知识做个小结,希望能对读者一些启发~ 创建字典   常见的字典创建方法就是先建立一个空字典,然后逐一添加键(key)和值(value),比如创建字典person={'name':'Tome', 'age':22, 'city':'Shanghai, 'ID': '073569'},可以使用以下代码: person = {} person['name'] = 'Tom' person['age']…
对如何写一个工业级的Python项目作一个top-down小结. 一.项目结构 顶层结构: 文件夹: model可以是项目中的自定义类: utils是一些工程工具,比如log,tracker log存放记录的日志 py文件: run:主文件,项目的顶层逻辑: settings:run文件中的常量(用作设置): 二.package(包) __init__.py作用: 当文件夹下有__init__.py时,表示当前文件夹是一个package,其下的多个module统一构成一个整体. 模糊导入: fr…
假设一个工程中有多个类,每个类都通过__init__来初始化参数.但是可能有很多高度重复且样式相同的__init__.为了减少代码.我们可以将初始化数据结构的步骤归纳到一个单独的__init__函数中,并将其定义在一个公共的基类中.示例如下: class structre(): fileds=[] def __init__(self,*args): if len(args) != len(self.fileds): raise TypeError('Expected {} arguments'.…
8.5 私有属性: 在python中,如果想将私有数据封装到类的实例上,有两种方法:1 单下划线.2 双下划线 1 单下划线一般认为是内部实现,但是如果想从外部访问的话也是可以的 2 双下划线是则无法通过外部访问且不能被继承覆盖 来看下面的这个例子: class B: def __init__(self): self.__private=0 def __private_method(self): print("__private method") def public_method(s…
正则表达式的章节到此就结束了,老猿现在觉得对我们这些身具程序猿基因特色的人来说,正则表达式应该是蛮可口的开胃小菜. 在写标题时,本来想写"正则表达式小结",后来想了想,百度了一下,牵强附会用了这个标题.不解释了! 在写Python正则表达式re处理模块之前,老猿其实是心存畏难情绪.摇摆了几次,到底自己要学习到什么程度.又要写到什么程度,才开始想写一个单章.后来想合并到一个老猿构想的<基础篇结束章节>中的一个节.再后来又想暂时先不写以后到中级课程内再写.最后决定分概念.模块.…
简介 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权限校验等场景.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用.概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能,我们也称之为AOP(面向切面编程) 原理 实现装饰器的最主要的原因是python中一切皆为对象,我们会把方法看做一个对…
所有数据进入程序中都只是一串字节 英文字符占一个字节 汉语是两个字节 一字节byte=8bit Unicode字符串为每种语言的每种字符设定了统一并且唯一的二进制编码 big = r'This is a \tsting' r表示原,字符串里面是什么就是什么,反斜杠就是反斜杠,并不会转义 s.isdigit() 判断是否字符串中都是数字 ord 和 chr 字符和对应阿斯克码值之间的转化 ord(a) chr(97) 判断对象是否是字符串: def isStringLike(anobj): try…
问题:重新格式化一些很长的字符串,以指定的列数来显示 解决方案:textwrap模块的fill()方法来实现 # A long string s = "Look into my eyes, look into my eyes, the eyes, the eyes, \ the eyes, not around the eyes, don't look around the eyes, \ look into my eyes, you're under." import textwra…
问题:以某种对齐方式将文本做格式化处理 解决方案: 1.针对字符串:ljust().rjust().center()方法 2.针对任何值,更加通用的:format()  更多内容:https://docs.python.org/3/library/string.html#formatspec >>> text='Hello World' >>> text.ljust(20) 'Hello World ' >>> text.rjust(20) ' Hel…
问题:例如清除在web页面表单中填入了pýtĥöñis这样的文本 解决方法:str.translate()方法 s = 'p\xfdt\u0125\xf6\xf1\x0cis\tawesome\r\n' print(s) # (a) Remapping whitespace 先建立一个小型的转换表,然后使用translate()方法 remap = { ord('\t') : ' ', ord('\f') : ' ', ord('\r') : None # Deleted } a = s.tra…
问题:在字符串的开始.结尾或中间去掉不需要的字符,比如说空格符 解决方案: 1.字符串开始或结尾处去掉字符:str.strip() 2.从左或从右侧开始执行去除字符:str.lstrip().str.rstrip() 3.对位于字符串中间的进行去除字符:str.replace().re.sub() Python 3.4.0 (v3.4.0:04f714765c13, Mar 16 2014, 19:24:06) [MSC v.1600 32 bit (Intel)] on win32 Type…
问题:以不区分大小写的方式对文本做查找和替换 解决方法:使用re模块,并对各种操作都添加上re.IGNORECASE标记 text='UPPER PYTHON,lower python,Mixed Python' print (re.findall('python',text,re.IGNORECASE)) print (re.sub('python','snake',text,flags=re.IGNORECASE)) >>> =============================…
问题:在字符串的开头或结尾处按照指定的文本模式做检查,例如检查文件的扩展名.URL协议类型等: 解决方法:使用str.startswith()和str.endswith()方法 >>> filename='spam.txt' >>> filename.endswith('.txt') True >>> filename.startswith('file:') False >>> url='http://www.python.org'…
问题:我们需要调用一个换算函数(例如sum().min().max()),但是首先需对数据做转换或者筛选处理 解决方案:非常优雅的方法---在函数参数中使用生成器表达式 例如: # 计算平方和 nums=[1,2,3,4,5] s1=sum((x*x for x in nums)) s2=sum(x*x for x in nums) #更优雅的用法 s3=sum([x*x for x in nums]) #不使用生成器表达式 print(s1) print(s2) print(s3) # 判断一…
问题:希望通过名称来访问元素,减少结构中对位置的依赖性 解决方案:使用命名元组collections.namedtuple().它是一个工厂方法,返回的是python中标准元组类型的子类,提供给它一个类型名称以及相应的字段名称,它就返回一个可实例化的类,为你以定义好的字段名称传入值等. 命名元组的主要作用在于将代码同它所控制的元素位置间进行解耦 >>> from collections import namedtuple >>> Sub=namedtuple('Subs…
问题:想根据一个或多个字典中的值来对列表排序 解决方案:利用operator模块中的itemgetter()函数对这类结构进行排序是非常简单的. # Sort a list of a dicts on a common key rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fname': 'David', 'lname': 'Beazley', 'uid': 1002}, {'fname': 'John', 'lnam…
问题:创建一个字典,同时对字典做迭代或序列化操作时,也能控制其中元素的顺序: 解决方案:可以使用collections模块中的OrderedDict类来控制字典中元素的顺序.当对字典做迭代时,他会严格按照元素初始添加的顺序进行.例如: from collections import OrderedDict d=OrderedDict() d['foo']=1 d['bar']=2 d['spam']=3 d['grok']=4 for key in d: print(key,d[key]) Py…
问题:要实现一个队列,它能够以给定的优先级对元素排序,且每次pop操作时都会返回优先级最高的那个元素: 解决方案:采用heapq模块实现一个简单的优先级队列 # example.py # # Example of a priority queue import heapq class PriorityQueue: def __init__(self): self._queue = [] self._index = 0 def push(self, item, priority): heapq.h…