`
friendsys
  • 浏览: 347959 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Python Totorial入门指南 笔记 [9:]

阅读更多
实现自定义class的迭代器,只需实现__iter__ 与next() 方法,其中iter方法只需返回自身

class iterDemo():
    def __init__(self,name):
        self.name=name
        self.index=len(name)
    def __iter__(self):
        return self
    def next(self):
        if self.index==0:
            raise StopIteration
        self.index = self.index-1
        return self.name[self.index]
   
for char in iterDemo('spanorz'):
    print char

生成器,用于创建迭代器的简单和强大的工具
使用yield返回字符串,但是继续循环

def reve(data):
    for index in range(len(data),-1,-1):
        yield index
       
for char in reve("123456789"):
    print char

生成器将会自动创建__iter__()与next()方法

生成器表达式
使用一些内置的函数来进行..如set max dict sum zip等方法,配合链表的使用

标准库介绍

操作系统接口 Operating System Interface
需要import os模块

导入时需要注意,不要使用from os import *, 放置os.open覆盖原来的open内置函数

在使用这些模块时,使用dir和help内置函数,可以提供非常有用的帮助

针对日常的文件和目录管理任务,shutil提供了易于使用的高级接口
如: 复制文件 copyfile.. 和移动文件 move..

glob模块提供了从指定目录,搜索指定通配符的文件列表(扩展名)
注意在读取中文文件名时,需要使用gbk进行decode

sys.stderr.write(".....") 用于输出错误信息

脚本的中止使用sys.exit();

字符串正则匹配  re模块,需要import
常用的方法有findall,与sub

如果只需要简单的功能,应该首先考虑字符串方法,简单而且易于阅读和调试


数学运算..math 模块,提供对底层C函数库的访问

随机数..random模块 提供了常用的方法如
choice,random(),sample,randrange等方法


互联网访问模块,有几个模块组成,最常用的包括
urllib2--从urls接受数据
smtplib--发送电子邮件模块

同样可以使用decode进行解码

import urllib2
for line in urllib2.urlopen("http://www.baidu.com"):
    print line.decode("gbk")

日期和时间 Dates and Times, datetime模块
now = date.today() //也包括了对时间的格式化处理
如:
from datetime import date
date_1=date(2008,7,16);
date2=date.today()-date_1
print date2

格式化操作 --使用date_1.strftime()方法
print date_1.strftime("%Y年-%m月-%d日")  //注意大小写

数据压缩 Data Compression

使用zlib,gzip,bz2,zipfile,tarfile等模块
常用方法..zlib.compress()压缩, decompress()解压缩,crc32获取crc码

如:
c="ah dahdj al djla jdl aj douq ej"
print len(c)
t=zlib.compress(c);
print len(t)
print zlib.crc32(c)

不过不知道为什么,压缩后的反而比较长

性能度量,timeit模块,主要为Timer类, 还有profile和pstats模块提供了针对更大代码块的时间度量工具

质量控制 Quality Control---主要为代码测试

doctest模块--通过勺内程序内嵌的文档字符串执行测试

测试的方法如下

import doctest
def aver(value):
    """
    >>> aver(30)   //注意aver()前必须加入>>> 注意空格,用于模拟方法执行
    330
    """
    return value

doctest.testmod();  //可以在这里之前加上 print,用于正确情况下也有输出

注意测试的注释,需要都放置在对应的方法体内,否则有可能出错,可以使用>>> 对一个方法进行多次测试

unittest模块,不像doctest模块那么容易使用,不过可以放置在一个独立的文件中提供更全面的测试集


xmlrpclib 和SimpleXmlRPCServer模块提供了对远程过程的调用--类似WebService

email包是一个邮件消息管理库,同时实现了构建和解析负责消息结构,如:互联网编码和头协议的工具集

xml.dom与xml.sax包提供了对xml的解析,提供了对xml信息交换格式的支持

国际化有gettext,locale和codecs包支持


标准库概览2
该部分的更高级的模块,很少出现在小脚本中

格式化输出 Output Formatting

repr,用于输出解释器所使用的格式
pprint --pretty printer 美化打印,使得数据结构显示的更清晰,与链表的等关联比较密切
如:
import pprint
t=[12313,324,344,556]
pprint.pprint(t,width=5)

textwrap模块,格式化文本字段以适合设定的屏幕宽度

print textwrap.fill(str(dir(textwrap)), 30)

locale库,提供不同国家的数据格式,进行格式化字符串输出


Templating模板

使用方式:
from string import Template  //注意导入的方式

t=Template('${name} is a $thing')
print t.substitute(name='dog',thing='animal')

在建立模板时候,使用$xx作为占位符,填充时候使用key=value的形式进行赋值,{}不是必须的,适应$$创建一个

单独的$号

如果出现key缺少值的情况下,substitute方法会抛出KeyError异常,使用safe-substitute会更安全一些,缺少

的占位符会被保留输出

可以通过继承Template类,通过设置delimiter类,如:
class bsT(Template):
    delimiter='&'
t=bsT('&{name} is a &thing')
print t.substitute(name='dog',thing='animal')

模板可以广泛的应用在XML,报表和HTML中

使用二进制记录层

struct模块提供pack()和unpack()函数用于变长二进制记录格式...暂不研究

多线程 Multi-threading  使用threading模块

可以通过继承 threading.Thread类实现,与Java类似,需要实现run方法,还可以使用Queue对象调度线程之间的
请求

日志系统 Logging模块
最简单的用户就是记录信息并发送到一个文件或者sys.stderr,记录的级别和Java类

似,debug,info,warning,error,critical等
默认信息是发送到标准错误流之中

弱引用 Weakref模块

用于跟踪对象,在对象被回收后,将会在弱引用表上删除,并触发回调

注册的方式: 
d=weakref.WeakValueDictionary();
d['primary'] = a  //其中a为需要监听的对象,primary为指向的key

链表工具 Lists Tool

array模块提供了类似链表的array()对象,它仅仅是存储数组,更为紧凑

clloections模块提供了类似链表的deque()对象,从左边添加append和pop弹出更快,当时内部查询更慢,
这些对象更是用于对象实现和广度优先的树搜索

该库还提供了bisect 这样的模块以操作存储链表

heapq提供了基于正规链表的堆的实现,最小值总是保持在0点


十进制浮点算法

使用decimal模块,提供高精度的运算
from decimal import *

print Decimal(1)/Decimal(7)

























































分享到:
评论

相关推荐

    Python Tutorial Python 入门指南

    Python Tutorial Python 入门指南

    Python Tutorial 入门指南3.6英文版

    The Python Tutorial 1 1. Whetting Your Appetite 4 2. Using the Python Interpreter 6 2.1. Invoking the Interpreter 7 2.1.1. Argument Passing 8 2.1.2. Interactive Mode 8 2.2. The Interpreter and Its ...

    Python Tutorial 新手入门指南 PDF

    Python Tutorial 新手入门指南 PDF Python Tutorial 新手入门指南 PDF

    Python Tutorial Python入门指南

    **Python编程语言简介** Python是一种高级、通用的编程语言,以其简洁、易读的语法而闻名,被广泛应用于网络爬虫、数据分析、机器学习、Web开发等多个领域。它支持多种编程范式,包括面向对象、命令式、函数式和...

    Python Tutorial入门指南

    英文版的Python Tutorial的翻译版 8 Classes 类 8.1 A Word About Terminology 8.2 Python Scopes and Name Spaces 8.3 A First Look at Classes 8.4 Random Remarks 8.5 Inheritance 8.6 Private Variables ...

    python_tutorial 入门

    根据提供的文件内容,我们可以提取以下知识点: ...以上内容构成了这份Python入门教程的核心知识点,涵盖了从Python语言的背景、特性、安装、环境配置、基础语法到如何开始实际的编程实践和注意事项。

    Python Tutorial 新手入门教程 PDF版.rar

    Python Tutorial ——Python新手入门指南 PDF版,内容包括:  Whetting Your Appetite 开胃菜  Using the Python Interpreter使用Python解释器  More Control Flow Tools 流程控制  Data Structures数据结构...

    【编程手册】《Python Tutorial Python 入门指南 Release 2.5b2》

    《Python Tutorial Python 入门指南 Release 2.5b2》是针对初学者的一份详尽教程,旨在帮助读者快速掌握Python 2.5版本的基本语法和编程技巧。本手册覆盖了Python语言的核心概念,包括数据类型、控制结构、函数、...

    python入门基础教程:python-gtk.pptx

    安装 sudo aptitude install python-gtk2 文档 http://www.pygtk.org/pygtk2tutorial/ch-Introduction.html#sec-ExploringPygtk python入门基础教程:python-gtk全文共15页,当前为第2页。 第一个例子 python入门...

    Python Tutorial中英双语对照文档.md

    本文档根据官方文档 http://www.pythondoc.com/pythontutorial3/ 和 中文文档 http://www.pythondoc.com/pythontutorial3/ 翻译与整理

    Python入门指南-2.7版本

    关于Python官网上的Tutorial的中文翻译,好像有几个版本。有一个是中英文对照(非左右对照,而是中英间杂),汉字还全是楷体,看着很不舒服;有一个倒是纯中文的,但是现在方便阅读的只有HTML版本,我根据后一个版本...

    Python Tutorial Python

    "Python Tutorial Python" 提到的是一个Python的入门指南,可能是针对初学者的一个教程资源,旨在帮助用户快速理解和掌握Python的基本概念和编程技巧。 **Python的特点** 1. **易学性**:Python语法清晰,易于理解...

    Python3.4入门指南(官方文档)kindle 电子书

    Python3.4 的入门指南,官方文档。...Python 入门指南 ( The Python Tutorial ) Python 入门指南是由Python官方发布的一份教程。他也被麻省理工学院所使用。有Python 2.7以及Python 3.0的版本提供。

    Python Tutorial 3.8.1教程中文.pdf

    Python Tutorial 3.8.1教程中文 官方文档 Python Tutorial 发布3.8.1 Guido van Rossum and the Python development team 二月06, 2020 Python Software Foundation Email: docs@python.org

    The Python Tutorial for python-2.7.6

    The Python Tutorial --python 的官方手册,建议大家好好读,也可以下载中文版学习!

    《Python Tutorial Python》PDF

    《Python Tutorial Python》这本书是Python编程语言的一份详尽指南,特别适合初学者和有一定基础的开发者使用。PDF格式使得这份教程可以方便地在各种设备上阅读和打印,便于学习和参考。 Python是一种高级编程语言...

    Python入门 PythonTutorial

    ### Python入门教程知识点详解 #### 一、Whetting Your Appetite(激发兴趣) - **简介**:本章节作为开篇,旨在通过一个简单的例子来激发读者对Python编程的兴趣。 - **示例代码**:通常会给出一个简单的Python...

Global site tag (gtag.js) - Google Analytics