
Python核心编程(第二版)
文章平均质量分 72
xufei96
SDET .net C#
展开
-
第3章 标准库类型(4)
3.4 迭代器简介迭代器是一种检查容器内元素并遍历元素的数据结构。标准库为每一种标准容器(包括vector)定义了一种迭代器类型。所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。因为迭代器对所有的容器都适用,现代C++程序更倾向于迭代器而不是下标操作访问容器元素,即使对支持下标操作的vector类型也是这样。1. 容器的iterator类型每种容器类型都定义原创 2011-11-04 17:15:34 · 260 阅读 · 0 评论 -
第15章 正则表达式(2)
15.3 正则表达式和Python语言15.3.1 re模块:核心函数和方法在模式匹配之前,正则表达式必须先被编译成regex对象。由于正则表达式在执行过程中被多次用于比较,所以强烈建议对它做预编译,而且,既然正则表达式的编译是必须的,那使用预编译来提升执行性能无疑是明智之举。re.compile()就是用来提供此功能的。15.3.2 使用compile()编译正则表达式大多数re原创 2011-10-24 13:34:24 · 322 阅读 · 0 评论 -
第14章 执行环境(5)
14.6 受限执行rexec 第一个模块允许沙盒(sandbox)中的执行代码修改内建对象。bastion 第二个模块用来过滤属性和包装你的类。14.7 结束执行14.7.1 sys.exit() and SystemExitsys.exit()的语法为:当调用sys.exit()时,就会引发systemExit()异常。除非对异常进行监控,异常通常是不会被捕捉或处理的,解释器原创 2011-10-21 14:15:00 · 299 阅读 · 0 评论 -
第15章 正则表达式(1)
15.1 引言/动机正则表达式(RE)为高级文本模式匹配,以及搜索-替代等功能提供了基础。正则表达式(RE)是一些由字符和特殊符号组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串的集合,因此能按某模式匹配一系列有相似特征的字符串。Python通过标准库的re模块支持正则表达式。15.2 正则表达式使用的特殊符号和字符15.2.1 用管原创 2011-10-21 15:59:26 · 368 阅读 · 0 评论 -
第14章 执行环境(4)
14.5 执行其他(非Python)程序14.5.1 os.system()>>> import os>>> result = os.system('ipconfig')>>> print result0system()是一个非常简单的函数,接收字符串形式的系统命令并执行它。当执行命令的时候,Python的运行是挂起的。当我们执行完成之后,将会以system()的返回值形原创 2011-10-21 13:42:37 · 305 阅读 · 0 评论 -
第13章 面向对象编程(17)
13.16.5 元类和__metaclass__1. 元类(Metaclasses)是什么元类让你来定义某些类是如何被创建的,从根本上说,赋予你如何创建类的控制权。从根本上说,你可以把元类想成是一个类中类,或是一个类,它的实例是其他的类。当你创建一个新类时,你就是在使用默认的元类,它是一个类型对象(对传统的类来说,它们的元类是types.ClassType)。当某个类调用type()函原创 2011-10-20 14:12:33 · 281 阅读 · 0 评论 -
第14章 执行环境(3)
14.4 执行其他(Python)程序14.4.1 导入第一次导入模块会执行模块最高级的代码。不管是否需要,这就是Python导入的行为。只有属于模块最高级的代码才是全局变量、全局类和全局函数声明。module1.pyprint 'This is module1!'program.pyprint 'Hello World'import module1输出:Hello Wo原创 2011-10-21 10:10:48 · 258 阅读 · 0 评论 -
第13章 面向对象编程(15)
13.16 新式类的高级特性(Python 2.2+)13.16.1 新式类的通用特性尽管isinstance()很灵活,但它没有执行“严格匹配”比较——如果obj是一个给定类型的实例或其子类的实例,也会返回True。但如果想执行严格匹配,你仍然需要使用is操作符。13.16.2 __slots__类属性__dict__属性跟踪所有实例属性。__slots__是一个类变量,由一原创 2011-10-20 09:14:26 · 256 阅读 · 0 评论 -
第14章 执行环境(2)
14.2 代码对象每个可调用物的核心都是代码对象,由语句、赋值、表达式和其他可调用物组成。一般说来,代码对象可以作为函数或者方法调用的一部分来执行,也可以用exec语句或内建函数eval()来执行。从整体上看,一个Python模块的代码对象是构成该模块的全部代码。函数对象仅是代码对象的包装,方法则是给函数对象的包装。14.3 可执行的对象声明和内建函数14.3.1callable(原创 2011-10-20 16:06:51 · 262 阅读 · 0 评论 -
第13章 面向对象编程(16)
13.16.4 描述符1.__get__()、__set__()和__delete__()特殊方法>>> class Celsius(object):... def __init__(self, value=0.0):... self.value = float(value)... def __get__(self, instance, owner):... retur原创 2011-10-20 13:35:01 · 277 阅读 · 0 评论 -
第14章 执行环境(1)
14.1 可调用对象Python有4种可调用对象:函数、方法、类以及一些类的实例。记住这些对象的任何引用或者别名都是可调用的。14.1.1 函数内建函数(BIF)使用C/C++写的,编译过后放入Python解释器,然后把它们作为第一(内建)名称空间的一部分加载进系统。这些函数在_builtin_模块里,并作为_builtins_模块导入到解释器中。用户定义的函数(UDF)通常是用P原创 2011-10-20 15:18:34 · 238 阅读 · 0 评论 -
第13章 面向对象编程(14)
13.14 私有化1. 双下划线(__)>>> class C(object):... __attr = 0... >>> print C.__attrTraceback (most recent call last): File "", line 1原创 2011-10-19 14:18:13 · 267 阅读 · 0 评论 -
第13章 面向对象编程(13)
13.13.3 迭代器(RandSeq和AnyIter)1.RandSeq>>> from random import choice>>> class RandSeq(object):... def __init__(self, seq):... self.d原创 2011-10-19 10:26:05 · 275 阅读 · 0 评论 -
第13章 面向对象编程(12)
13.13 用特殊方法定制类特殊方法允许类通过重载标准操作符+,*,甚至包括分段下标及映射操作[]来模拟标准类型。如同其他很多保留标识符,这些方法都是以双下划线(__)开始及结尾的。13.13.1 简单定制(RoundFloat2)>>> class RoundFlo原创 2011-10-19 09:53:41 · 263 阅读 · 0 评论 -
第8章 条件和循环(2)
8.11 迭代器和iter()函数8.11.1什么是迭代器迭代器是一组数据类型,可以利用它们的索引从0开始一直“迭代”到序列的最后一个条目。用“计数”的方法迭代序列是很简单的。Python的迭代无缝地支持序列对象,而且它还允许程序员迭代非序列类型,包括用户定义的对象。原创 2011-10-10 16:03:17 · 241 阅读 · 0 评论 -
第8章 条件和循环(1)
8.1 if语句8.1.1 多重条件表达式单个if语句可以通过使用布尔操作符and、or和not实现多重判断条件或是否定判断条件。8.1.2 单一语句的代码块如果一个复合语句的代码块仅仅包含一行代码,那么它可以和前面的语句写在同一行上。8.2 else语句原创 2011-10-10 15:26:49 · 297 阅读 · 0 评论 -
第9章 文件和输入输出(2)
9.3 文件内建方法9.3.1 输入read()方法用来直接读取字节到字符串中,最多读取给定数目个字节。readlines()方法读取打开文件的一行。然后整行,包括行结束符,作为字符串返回。9.3.2 输出write()方法把含有文本数据或二进制数据块的字符串原创 2011-10-11 13:15:29 · 301 阅读 · 0 评论 -
第6章 序列:字符串、列表和元组(5)
6.13 内建函数6.13.1 标准类型函数cmp()6.13.2 序列类型函数len() max() min() sorted() reversed() enumerate() zip() sum() list() tuple()>>> aList = ["原创 2011-10-09 16:05:23 · 249 阅读 · 0 评论 -
第15章 正则表达式(3)
15.3.10 从字符串的开头或结尾匹配及在单词边界上的匹配>>> m = re.search('^The', 'The end.')>>> if m is not None:... m.group()... 'The'>>> >>> m = re.search(r'\bthe', 'here is the dog!')>>> if m is not None:... pr原创 2011-10-24 14:46:23 · 315 阅读 · 0 评论 -
第16章 网络编程(1)
16.1 引言最常用的软件服务器是Web服务器。一台机器里放一些网页或web应用程序,然后启动服务。这样的服务器的任务就是接受客户端的请求,把网页发给客户端(如用户计算机上的浏览器),然后等待下一个客户端请求。16.2 套接字:通信端点16.2.1 什么是套接字套接字是一种具有之前所说的“通信端点”概念的计算机网络数据结构。16.2.2 套接字地址:主机与端口如果把套接字比原创 2011-10-25 09:53:01 · 298 阅读 · 0 评论 -
第3章 标准库类型(3)
3.3 标准库vector类型vector是同一种类型的对象的集合,每个对象都有一个对应的数据索引值。和string对象一样,标准库将负责管理与存储元素相关的内存。我们把vector称作容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。vector是一个类模板(class template,也就是C#中的泛型)。使用模板可以编写一个类定义或函数定义,而用于多个不同的原创 2011-11-04 14:16:46 · 336 阅读 · 0 评论 -
学习总结:Python与C#的区别
首先,Python与JAVA一样,是一门开源的、跨多平台的语言。而C#本身不是开源的,且只能运行在Windows平台上。1. 编译性 Python是一门解释性脚本语言,源代码不需要编译可以直接运行,运行时Python字节码解释器解释源代码并执行相关命令。Python的源代码文件.py可以直接运行,如果装了Python在本地的话。而C#则需要编译为IL,运行时由CLR托管运行。2. 数据原创 2011-10-31 13:34:01 · 2063 阅读 · 0 评论 -
第19章 图形用户界面编程(1)
图形用户界面(graphical user interface, GUI)19.1 简介19.1.1 什么是Tcl、Tk和TkinterTkinter是Python的默认GUI库,它基于Tk工具集,后者最初是为工具命令语言(Tcl)设计的。19.2 Tkinter与Python编程19.2.2 GUI程序开发简介Tkinter.Tk() 返回的对象通常被称作根窗口。Tk原创 2011-10-27 12:34:15 · 492 阅读 · 0 评论 -
第18章 多线程编程(5)
18.5.4 生产者-消费者问题和Queue模块from random import randintfrom time import sleepfrom Queue import Queuefrom MyThread import MyThreaddef writeQ(queue): print 'producting object for Q...' queue.p原创 2011-10-27 10:01:48 · 433 阅读 · 0 评论 -
第18章 多线程编程(4)
18.5.2 斐波那契、阶乘和累加和import threadingfrom time import ctime, sleeploops = [4, 2]class MyThread(threading.Thread): def __init__(self, func, args, name=''): threading.Thread.__init__(sel原创 2011-10-27 09:34:58 · 381 阅读 · 0 评论 -
第18章 多线程编程(3)
18.5 threading模块Threading模块支持守护线程,它们是这样工作的:守护线程一般是一个等待客户请求服务器,如果客户提出请求,它就在那等着。如果你设定一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出。如果你的主线程要退出的时候,不用等待那些子线程完成,那就设定这些线程的daemon属性。即,在线程开始(调用thread.start(原创 2011-10-26 16:44:13 · 398 阅读 · 0 评论 -
第20章 Web编程(1)
20.1 介绍20.1.1 Web应用:客户端/服务器计算Web客户端和服务器端交互使用的“语言”,Web交互的标准协议是HTTP(超文本传输协议)。HTTP协议是TCP/IP协议的上层协议,这意味着HTTP协议依靠TCP/IP协议来进行底层的交流工作。它的职责不是路由或者传递消息(TCP/IP协议处理这些),而是通过发送、接收HTTP消息来处理客户端的请求。HTTP协议属于无状态协议原创 2011-10-27 15:40:58 · 385 阅读 · 0 评论 -
第19章 图形用户界面编程(2)
19.3 Tkinter举例19.3.1 标签组件import Tkintertop = Tkinter.Tk()label = Tkinter.Label(top, text = 'Hello World!')label.pack()Tkinter.mainloop()label.pack()指明用packer来管理和显示组件。19.3.2 按钮组件import T原创 2011-10-27 12:58:45 · 592 阅读 · 0 评论 -
第18章 多线程编程(1)
18.2 线程和进程18.2.1 什么是进程进程是程序的一次执行。每个进程都有自己的地址空间、内存、数据栈及其它记录其运行轨迹的辅助数据。操作系统管理在其上运行的所有进程,并为这些进程公平地分配时间、进程也可以通过fork和spawn操作来完成其他的任务。不过各个进程有自己的内存空间、数据栈等,所以只能使用进程间通讯,而不能直接共享信息。18.2.2 什么是线程所有线程运行在同一个原创 2011-10-26 15:15:31 · 346 阅读 · 0 评论 -
第17章 网络客户端编程(2)
17.3 网络新闻17.3.2 网络新闻传输协议(NNTP)供用户在新闻组中下载或发表帖子的方法叫网络新闻传输协议(NNTP).FTP需要不同的端口来做登录、数据传输和控制,而NNTP只使用一个标准端口119来做通讯。17.3.3 Python和NNTPNNTP服务器的配置不一样。登录这一步是可选的。在你登录完成后,你要调用group()方法来选择一个感兴趣的新闻组。1原创 2011-10-26 13:56:08 · 342 阅读 · 0 评论 -
第18章 多线程编程(2)
18.4 thread模块import threadfrom time import ctime, sleeploops = [4, 2]def loop(nloop, nsec, lock): print 'start loop ', nloop, ' at: ', ctime() sleep(nsec) print 'loop ', nloop, ' do原创 2011-10-26 16:02:51 · 300 阅读 · 0 评论 -
第16章 网络编程(3)
16.3.6 创建一个UDP服务器由于UDP服务器不是面向连接的,所以不用像TCP服务器那样做那么多的设置工作。事实上,并不用设置什么东西,直接等待进来的连接就好了。from socket import *from time import ctimeHOST = ''PORT = 12345BUFSIZ = 1024ADDR = (HOST, PORT)udpSerSock原创 2011-10-25 14:40:04 · 347 阅读 · 0 评论 -
第17章 网络客户端编程(1)
17.2 文件传输17.2.1 文件传输网际协议有很多协议可以供因特网上传输文件使用。最流行的有文件传输协议(File Transfer Protocol, FTP)、Unix-to-Unix复制协议(Unix-to-Unix Copy Protocol, UUCP)和网页的超文本传输协议(Hypertext Transfer Protocol, HTTP)。另外,还有(Unix下的)远程原创 2011-10-26 10:25:26 · 342 阅读 · 0 评论 -
第16章 网络编程(4)
16.4 SocketServer模块16.4.1 创建一个SocketServerTCP服务器from SocketServer import (TCPServer as TCP, StreamRequestHandler as SRH)from time import ctimeHOST = ''PORT = 23456ADDR = (HOST, PORT)class原创 2011-10-25 15:05:23 · 439 阅读 · 0 评论 -
第16章 网络编程(5)
16.5 Twisted框架介绍Twisted是一个完全事件驱动的网络框架。Twisted还不是Python标准库的一部分,要使用它,你必须另外下载并安装它。twistedhttp://twistedmatrix.com/trac/zope.interfacehttp://pypi.python.org/pypi/zope.interface/3.8.0#downloads原创 2011-10-25 15:57:48 · 458 阅读 · 0 评论 -
如何安装.EGG文件
准备好蛋准备好工具安装工具:http://pypi.python.org/pypi/setuptools安装完成后在D:\Python27\Scripts文件夹中找到easy_install.exe, 在cmd中运行这个exe文件,将egg文件作为运行参数C:\Documents and Settings\10170660>C:\Python27转载 2011-10-25 15:28:31 · 6996 阅读 · 0 评论 -
第16章 网络编程(2)
16.3 Python中的网络编程16.3.1 socket()模块函数使用socket.socket()函数来创建套接字。socket(socket_family, socket_type, protocol = 0)>>> import socket>>> tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)原创 2011-10-25 10:56:34 · 309 阅读 · 0 评论 -
第13章 面向对象编程(8)
13.9 组合有两种方法可以在你的代码中利用类。第一种是组合(composition)。就是让不同的类混合并加入到其他类中,来增加功能和代码重用性。另一种方法是通过派生。>>> class C1(object):... def __init__(self):...原创 2011-10-18 14:34:28 · 195 阅读 · 0 评论 -
第13章 面向对象编程(5)
13.6 实例属性实例仅拥有数据属性(方法严格来说是类属性),后者只是与某个类的实例相关联的数据值,并且可以通过句点属性标识法来访问。这些值独立于其他实例或类。当一个实例被释放后,它的属性同时也被清楚了。13.6.1 ”实例化“实例属性(或创建一个更好的构造器)1.原创 2011-10-18 12:25:12 · 277 阅读 · 0 评论 -
第13章 面向对象编程(9)
13.11 继承继承描述了基类的属性如何"遗传”给派生类。一个子类可以继承它的基类的任何属性,不管是数据属性还是方法。>>> class P(object):... "current is P"... def __init__(self):... print原创 2011-10-18 15:10:40 · 185 阅读 · 0 评论