1. 字符串:s.strip()  删除字符串开始和结尾的空白字符。 s.lstrip() 删除左边的,s.rstrip()  删除右边的。

  2. 随机数:random.random()  生成0-1之间的数。       random.randint(0,100) 生成0-100之间的整数。

  3. unicode文本标准化

    1. import unicodedata
    2. unicodedata.normalize(‘NFD’, s)
  4. 文件: with open() as f: with控制块结束时,文件会自动关闭。
          f = open(), f.close() 不使用with时,需手动关闭
             向文件追加内容,而不覆盖文件内容, 用at(ab)模式 or xt(xb)模式
             文件是否存在: os.path.exists('somefile')

  5. 字节字符串与十六进制之间的转换:

    1. import binascii
    2. s = b'hello'     
    3. h = binascii.b2a_hex(s)  
    4. binascii.a2b_hex(h)  
    5.  
    6. import base64
    7. s = b'hello'
    8. h = base64.b16encode(s)
    9. base64.b16decode(h)
  6. struct模块 编码和解码二进制数据:
             <表示字节顺序低位开始, >表示从高位开始,i表示32位整数(4字节),d表示64位浮点数(8字节), f表示32位浮点数(4字节), !表示网络字节顺序

    1. from struct import Struct
    2. record = Struct('<idd')
    3. record.size #4+8+8 大小为20
    4. record.pack(1, 2.0, 3.0)
    5. record.unpack(_)
    6.  
    7. # 另一种方法
    8. import struct
    9. struct.pack('<idd', 1, 2.0, 3.0)
    10. struct.unpack('<idd', _)
  7. id() 方法返回值是对象的内存地址。

  8. eval()  函数可以把string格式的对象转为引号内原来的类型。 例如: a = '123',  b=eval(a)  则b为int类型。

  9. yield: 生成器  对当前迭代进行操作,每次返回当前迭代的值.并没有把所有值放在内存中,动态地生成值.

  10. lambda表达式:   匿名函数,不需要def定义和return显式返回。

  11. 正则匹配手机号、邮箱:

    1. a = 'xxxx'
    2. p = re.compile('[^\._-][\w\.-]+@(?:[A-Za-z0-9]+\.)+[A-Za-z]+$|^1[3578]\d{9}$|^147\d{8}$')
    3. b = p.match(a)
    4. # [^\._-] 匹配不含. _ -等特殊字符
    5. # (?:pattern) 匹配不获取匹配结果
  12. 时间操作:

    1. # 北京时间:string类型
    2. a = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  
    3. # utc时间:date类型  
    4. b = datetime.datetime.utcnow()   
    5. # 加减时间:
    6. a+datetime.timedelta(hours=8)    # 加8小时
    7. a+datetime.timedelta(days=8) # 加8天
  13. 获取当月第一天日期:              

    1. datetime模块:

    1. d = datetime.datetime.now()
    2. m = d.month
    3. y = d.year
    4. date = datetime.datetime(y, m, 1)

    2. time模块:

    1. import time
    2. a = time.localtime()
    3. end_time =str(datetime.datetime(get_time.tm_year,get_time.tm_mon,get_time.tm_mday, 23, 59, 59)) # 获取当前时间:年月日时分秒
    4. start_time = str(datetime.datetime(get_time.tm_year,get_time.tm_mon,1)) # 获取当月第一天日期
  14. 使用线程队列有一个要注意的问题是,向队列中添加数据项时并不会复制此数据项,线程间通信实际上是在线程间传递对象引用。如果你担心对象的共享状态,那你最好只传递不可修改的数据结构(如:整型、字符串或者元组)或者一个对象的深拷贝。 copy.deepcopy(data)

  15. Jquery获取当前时间:
    1. function currentTime() {
    2. var d = new Date(), str = '';
    3. str += d.getFullYear() + '年';
    4. // 月份、天数计算从0开始,需要加1
    5. str += d.getMonth() + 1 + '月';
    6. str += d.getDate() + 1 + '日';
    7. return str;
    8. }
  16. 多进程与多线程
    计算密集型程序,多进程并发优于多线程;IO密集型程序,多线程并发优于多进程
    multiprocessing.JoinableQueue, concurrent.futures.ProcessPoolExecutor(进程池) 是多进程安全的,不产生死锁

Python Cookbook笔记的更多相关文章

  1. Python Cookbook 笔记--12章并发编程

    <Python Cookbook(第3版)中文版> 1.队列queue的有些方法是线程不安全的,在多线程中最好别用 2.需要限制一段代码的并发访问量时,用信号量.不要把信号量当做普通的锁来 ...

  2. python cookbook 笔记一

    因为有些代码只有在python3里可以正常运行,所以最好配两个虚拟环境 安装虚拟环境: pip install virtualenv virtualenv -p /usr/bin/python3.5 ...

  3. python cookbook 笔记三

    分组: rows = [ {'address': '5412 N CLARK', 'date': '07/01/2012'}, {'address': '5148 N CLARK', 'date': ...

  4. python cookbook 笔记二

    去重和排序: #coding=utf-8 def dedupe(items): seen = set() for item in items: if item not in seen: yield i ...

  5. 《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记

    看<Python cookbook>的时候,第9.5部分,"定义一个属性可由用户修改的装饰器",有个装饰器理解起来花了一些时间,做个笔记免得二刷这本书的时候忘了 完整代 ...

  6. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  7. python cookbook学习1

    python cookbook学习笔记 第一章 文本(1) 1.1每次处理一个字符(即每次处理一个字符的方式处理字符串) print list('theString') #方法一,转列表 结果:['t ...

  8. Web Scraping with Python读书笔记及思考

    Web Scraping with Python读书笔记 标签(空格分隔): web scraping ,python 做数据抓取一定一定要明确:抓取\解析数据不是目的,目的是对数据的利用 一般的数据 ...

  9. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

随机推荐

  1. JY03-HTML/CSS-京东03

  2. Wcf序列化的循环引用问题1

    1.Wcf数据契约序列化,使用的类DataContractSerializer 默认如果类不指定[DataContract],则序列化类的所有字段,并且在出现循环引用的时候回抛出异常,服务终止 msd ...

  3. Delphi 做ActiveX的详细过程

    1.新建 如下图 点击OK 依然点击OK 出现了如上图的节面,就像窗体一样. 然后 你就想干什么干什么. 这个做好之后, 这个是我设计的窗体. 然后 就添加 外部可以调用的接口了. 如果你不想让外部调 ...

  4. Swift中的延迟加载(懒加载)

    Swift方式的延迟加载 而在Swift中,你只需一行代码即可实现此机制: lazy var players = String[]() 简单.简洁,直入主题. 但你得记住,你必须使用var关键字来定义 ...

  5. 在Mvc中创建WebApi是所遇到的问题

    1.提示"The 'ObjectContent`1' type failed to serialize the response body for content type 'applica ...

  6. ecshop有关real_ip()你发现的问题

    我这边有一个ECSHOP后台,有一个功能,在客户下订单时自动获取客户IP,用的是ECSHOP本身的real_ip函数,但这个函数存在一个问题,十个订单得到的IP,可能会有几个与CNZZ统计得到的不一样 ...

  7. nodejs 记入

    1. vs2015 使用最新的 nodejs refer : http://josharepoint.com/2016/05/04/how-to-configure-visual-studio-201 ...

  8. Largest product in a grid

    这个比前面的要复杂点,但找对了规律,还是可以的. 我逻辑思维不强,只好画图来数数列的下标了. 分四次计算,存入最大值. 左右一次,上下一次,左斜一次,右斜一次. In the 2020 grid be ...

  9. mysql redo log

    mysql> show variables like '%innodb_log_file_size%'; +----------------------+-----------+ | Varia ...

  10. rsyslog 同步丢失问题

    <pre name="code" class="html">[root@dr-mysql01 zjzc_log]# wc -l localhost_ ...