python核心编程
mzm1991
这个作者很懒,什么都没留下…
展开
-
python核心编程学习笔记-2016-10-01-01-客户端COM编程
23.1#-*-coding: utf-8-*-from time import ctimefrom urllib import urlopenticks = ('YHOO', 'GOOG', 'EBAY', 'AMZN')URL = 'http://quote.yahoo.com/d/quotes.csv?s=%s&f=sl1c1p2' # f=sl1c1p2中的s、l1、c1和原创 2016-10-01 11:30:34 · 1214 阅读 · 1 评论 -
python核心编程学习笔记-2016-08-28-02-习题18-6
习题18-6服务器#-*-coding: utf-8-*-# 参考网上的思路,服务器端主线程仍然是监视连接,新建两个线程,一个用来接收信息,另外一个用来接收信息。from socket import *import threadingfrom time import ctimeHOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (H原创 2016-08-28 16:11:50 · 657 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-28-01-习题18-4和习题18-9
习题18-4#-*-coding: utf-8-*-import threadingimport timechar = chr(input("Enter a positive number from 0 to 255: "))filename = raw_input("Enter a filename: ")print "*** Single Thread"count =原创 2016-08-28 14:39:56 · 546 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-27-01-多线程编程
18.2 线程和进程 进程是程序的一次执行,拥有自己的地址空间、内存、数据栈及其他记录其运行轨迹的辅助数据。只能使用进程间通讯(IPC),而不能共享信息。 线程,与进程有些相似。但所有线程都运行在同一个进程中。它有开始、顺序执行和结束三部分,也可能被中断、挂起。线程之间共享同一片数据空间。线程一般是并发执行的。 18.3 python、线程和全原创 2016-08-27 19:21:44 · 505 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-26-01-文件传输
17.2.1 文件传输网际传输协议 本质是Internet上的文件的交换。 包括文件传输协议(FTP)、unix-to-unix复制协议(UUCP)、超文本传输协议(HTTP)、rcp、scp和rsync等。 17.2.2 文件传输协议 1. 客户端连接远程的FTP服务器; 2. 客户端输入用户原创 2016-08-26 22:27:55 · 1137 阅读 · 1 评论 -
python核心编程学习笔记-2016-08-23-01-习题16-13
习题16-13 名字服务器。设计并实现一个名字服务器。这个服务器负责维护一个主机名-端口对的数据库,以及一个描述这个服务器提供的服务的字符串。 选择一个或几个服务器到你的名字服务器上进程“注册”。(注意,这时,这些服务器是名字服务器的客户)。每一个客户在启动的时候,都不知道它们想要找的服务器的信息。名字服务器的客户也是这样。这些客户应该发送一个请求到名字服务器,说明它们想要得到什原创 2016-08-23 22:17:13 · 488 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-21-04-SocketServer模块
16.4节SocketServer模块 本节书中只是大略介绍了这个模块的一些类,但是并不具体,如果要深入研究,可能还得看相关参考资料。 关于本节的两个例子,其实思路都是一样的。但是还是有一些区别,看代码中的注释吧。#-*-coding: utf-8-*-"""使用SocketServer里的TCPServer和StreamRequestH原创 2016-08-21 20:49:28 · 419 阅读 · 0 评论 -
Python核心编程学习笔记-2016-08-21-03-python网络编程UDP
创建UDP服务器,伪代码如下:ss = socket() # 创建服务器套接字ss.bind() # 绑定服务器套接字inf_loop: # 服务器无限循环 cs = ss.recvfrom / ss.sendto() # 对话(接收与发送)ss.close() # 关闭服务器套接字 创建UDP客户端,伪代码如下:cs = socket() # 创建客户端套接字原创 2016-08-21 20:20:57 · 261 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-21-02-python网络编程TCP
16.3开始介绍的socket模块,这基本没什么难度。 创建TCP服务器,伪代码为:ss = socket() # 创建服务器套接字ss.bind() # 把地址绑定到套接字上ss.listen() # 监听连接inf_loop: # 服务器无限循环 cs = ss.accept() # 接受客户端连接comm_loop: # 通信循环 cs.recv原创 2016-08-21 18:25:02 · 314 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-21-01-客户端/服务器架构、套接字
16.1 服务器是一个软件或硬件,用于向一个或多个客户端(客户)提供所需的服务。书中所说的银行出纳模型就与服务器挺类似的。 服务器还具有一个特点就是它处在一个接受请求、处理请求然后再接受请求或等待其他客户的无限循环中。 服务器需创建一个通讯端点,来监听请求。 16.2 套接字 这一部分理解较难。原创 2016-08-21 17:43:25 · 426 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-20-01-正则表达式
本章总体难度不大 15.1节需要理解‘搜索(search)’和‘匹配(match)’,匹配是指一个字符串从头开始部分或全部地与正则表达式匹配,而搜索是指字符串部分或全部与正则表达式匹配。两者不同之处在于匹配必须是“从字符串开头起始”,而搜索既可以从字符串开头起始,也可以从字符串中间起始。 15.2节讲正则表达式使用的特殊符号和字符,基本没什么难度,注意在使用闭包操作原创 2016-08-20 22:16:02 · 417 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-17-01-代码对象、可执行对象声明和内建函数
代码对象,这个概念比较抽象,本人理解为我们写的python程序中的所有东西,包括python语句、赋值、表达式、模块等。 而下一节就相对好理解一些。 callable(obj)就是判断obj是否是可调用对象。 compile(string, file, type),生成代码对象。第一个参数是字符串类型,其内容是python程序的语句,第二个参数原创 2016-08-17 18:41:12 · 377 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-16-01-可调用对象
可调用对象 定义为任何能通过函数操作符“()“来调用的对象,还可以通过函数式编程接口来调用,如apply(),filter(),map()和reduce()等。 python共有四种可调用对象,分别是函数,方法,类和一些类的的实例(实现了__call__()方法的实例)。 函数对象,非常好理解,不管是内建函数(BIF)还是用户自定义函数(UDF原创 2016-08-16 19:21:42 · 425 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-15-01-左加法__add__和右加法__radd__
在习题13-20中,出现了__radd__()函数。__radd__(self, other)和__add__(self, other)都是定制类的加法,前者表示右加法other + self,后者表示左加法self + other。python在执行加法a + b的过程中,首先是查找a是否有左加法方法__add__(self, other),如果有就直接调用,如果没有,就查找b是否有右加原创 2016-08-15 21:38:56 · 3091 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-29-01-图形化用户界面编程(一:)
19.1 Tcl、Tk和Tkinter Tcl: 工具命令语言 Tk: 图形化用户界面(GUI)工具集中的一种。 Tkinter: python的默认GUI库。 19.2 Tkinter与python编程 19.2.1 将Tk引入程序 1. 导入Tk模块; 2.原创 2016-08-29 18:53:41 · 752 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-03-01-图形化用户界面编程(二)
19.3Tkinter举例 标签组件#-*-coding: utf-8-*-import Tkintertop = Tkinter.Tk() # 创建顶层窗口label = Tkinter.Label(top, text="Hello World!") # 创建标签组件label.pack() # packer管理和显示组件Tkinter.mainloop()原创 2016-09-03 08:55:08 · 785 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-25-01-python扩展
22.1 引言/动机 22.1.1 什么是扩展 扩展:所有能被整合或导入到其他python脚本的代码,都可以称为扩展。e.g. 纯python、C/C++、Java、C#或Visual Basic.NET都可以 22.1.2 为什么要扩展python添加/额外的(非python)功能性能瓶颈的效率提升——把软件开发过程中的瓶颈原创 2016-09-25 16:28:51 · 584 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-24-01-数据库编程(四)
21.2.7 使用数据库接口程序示例(只有MySQL运行的比较顺利,其他两个PostgreSQL和SQLite出各种问题) 主要过程正如书中所说,创建数据库、创建表和使用表。>>> import MySQLdb>>> cxn = MySQLdb.connect(user='root')>>> cxn.query('DROP DATABASE test')Tracebac原创 2016-09-24 13:05:18 · 544 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-18-01-数据库编程(三)
21.2.2 l连接对象 要与原创 2016-09-18 19:09:05 · 377 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-17-02-数据库编程(二)
21.2 Python数据库应用程序 程序员接口(DB-API) DB-API是一个规范。它定义了一系列必需的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。 21.2.1 模块属性 一个DB-API兼容的模块必须定义如下所示的所有全局属性。属性名描述apil原创 2016-09-17 17:37:38 · 328 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-17-01-数据库编程(一)
21.1 介绍 21.1.1 持久存储 关系型数据库(Relational Database Management System, RDBMS) 基本的存储机制有三种,分别是文件、关系型数据库或其他的一些变种。 21.1.2 基本的数据库操作和SQL语言 结构化查询语言(Structured Query La原创 2016-09-17 15:55:35 · 381 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-15-02-Web编程(八)
20.8 Web(HTTP)服务器 建立一个Web服务,需要一个基本的服务器和一个处理器。 服务器的角色是在客户端和服务器端完成必要的HTTP交互,在python的BaseHTTPServer模块中找到HTTPServer的服务器基本类。 处理器是处理客户端的请求,并返回适当的文件,如静态的文本或由CGI生成的动态文件。在python标准库中,原创 2016-09-15 22:40:54 · 385 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-16-01-cgi.FieldStorage()是经典类
习题20-20 开始的代码:mycgi.py#-*-coding: utf-8-*-import cgiclass myFieldStorage(cgi.FieldStorage): def __init__(self): super(myFieldStorage, self).__init__() def get(s原创 2016-09-16 18:44:05 · 2103 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-15-01-urlopen返回的对象无seek()方法
习题20-3 思路是用urlopen()返回一个类文件句柄,再对这个文件句柄进行相关操作。先统计非空行数,再打印第一个非空行和最后一个非空行。所以一开始的代码如下:#-*-coding: utf-8-*-import urllibf = urllib.urlopen(raw_input("Enter a url: "))max_count = 0for eachLi原创 2016-09-15 19:08:59 · 775 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-11-01-Web编程(四)
20.4 CGI 标准网关接口(Common Gateway Interface, CGI) 如图所示: 客户端向Web服务器提交请求(GET方式或POST方式),Web服务器接到请求后,与CGI应用程序交互,CGI应用程序生成动态的HTML页面返回到Web服务器,Web服务器再把这个HTML页面返回给客户端。(本人大致理解过程)原创 2016-09-11 21:43:10 · 264 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-10-03-Web编程(三)
20.3 高级Web客户端 本节演示网络爬虫。它是按照一定的规则,自动地抓取万维网信息的程序或者脚本。 在本节的演示程序中,抓取Web的开始页面地址,下载与开始页面相同域名的后续链接页面。#-*-coding: utf-8-*-from sys import argvfrom os import makedirs, unlink, sepfrom os.原创 2016-09-10 10:34:25 · 783 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-10-02-Web编程(二)
20.2.1 统一资源定位符 URL(Uniform Resource Locator,统一资源定位符),它是一个Web地址,用来定位一个文档,或者调用CGI程序来为客户端产生一个文档。 URI(Uniform Resource Identifier,统一资源标识) URN(Uniform Resource Name,统一资源名称)原创 2016-09-10 09:30:11 · 627 阅读 · 1 评论 -
python核心编程学习笔记-2016-09-10-01-Web编程(一)
20.1. 1 Web应用 Web应用遵循服务器/客户端架构,这里客户端就是我们通常所用的浏览器。 Web交互的标准协议是HTTP(超文本传输协议),它是TCP/IP协议的上层协议(不太理解)。 HTTP是无状态协议,不跟踪从一个客户端到另一个客户端的请求信息。 20.1.2原创 2016-09-10 09:28:11 · 339 阅读 · 0 评论 -
python核心编程学习笔记-2016-09-03-02-图形化用户界面编程(三)
19.3.6中级Tkinter范例 这个程序比较复杂,其中有部分内容还没有完全理解。#-*-coding: utf-8-*-import osfrom time import sleepfrom Tkinter import *class DirList(object): def __init__(self, initdir=None):原创 2016-09-03 09:00:33 · 1103 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-13-06-元类
元类从书中内容来看,元类用于创建类时,对创建类这一行为作出规范。比如说规定创建出来的类必须具有某些属性等。而我们默认的元类是创建类,不去管创建出来的类时什么样子的。#-*-coding: utf-8-*-from time import ctimeprint "*** Welcome to Metaclasses!"print "\tMetaclasses declaration原创 2016-08-13 23:47:32 · 252 阅读 · 0 评论 -
python核心编程学习笔记-2016-08-13-05-property()函数
property()函数有了之前的描述符,property()函数也就好理解了。property()函数也是处理属性相关的问题的(访问、赋值、删除和文字说明)。property()函数语法如下property(fget = None, fset = None, fdel = None, doc = None)property()函数的四个参数fget、fset、fdel和doc原创 2016-08-13 23:41:49 · 332 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-28-01-习题6-16
习题6-16#-*-coding: utf-8-*-import sysdef getInput(): while True: try: line = int(raw_input("Enter a positive integer as line: ")) # 检查行数输入是否为正整数 row = int(raw_原创 2016-07-28 21:18:25 · 393 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-26-01-习题6-13
习题6-13将复数字符串转变成复数,由例子'-1.23e+4-5.67j',要考虑用科学计数法表示数字的情况。代码如下:#-*-coding: utf-8-*-import stringnum = string.digitsvalid = num + '.' + '+' + '-' + 'e' + 'E' # 复数字符串中可能出现的字符,包括以科学计数法表示的数字def g原创 2016-07-26 21:38:14 · 376 阅读 · 0 评论 -
Python核心编程学习笔记-2016-07-24-01-理解copy和deepcopy
6.20节copy实施方式:(1)完全切片操作[:](2)工厂函数list(),tuple()等(3)copy模块的copy函数copy可以说是创建了了一个新的对象,但是内容仍然是原对象的引用。如果对其中含有的可变对象进行原地修改,copy后创建的新对象也会进行相应的修改。比如代码:>>> person = ['name', ['savings', 100.00]]>原创 2016-07-24 14:41:07 · 256 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-23-03-反单引号
例6.3代码#-*-coding: utf-8-*-# 列表构建堆栈stack = [] # 初始化堆栈# pushit()函数添加一个元素(通过提示由用户输入)到堆栈中。def pushit(): stack.append(raw_input("Enter new string: ").strip())# popit()函数从堆栈中移除一个元素(最新的那个)。de原创 2016-07-23 19:33:23 · 1150 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-23-02-切片索引
切片索引不同于单一元素索引,切片索引可以超过序列长度,如>>> a = ('Faye', 'Leanna', 'Daylen')>>> a[-100: 100]('Faye', 'Leanna', 'Daylen') 给定一个序列,比如说字符串,通过循环,每次把位于最后的一个字符删除,且第一次循环显示完整字符串(不额外)原创 2016-07-23 11:25:20 · 236 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-23-01-习题5-6
习题5-6简单计算器代码如下:#-*-coding: utf-8-*-# 计算器# 根据输入结果进行计算def cal(expr): L = expr.split() N1 = isIntorFloat(L[0]) N2 = isIntorFloat(L[2]) if L[1] == '+': return N1 + N2原创 2016-07-23 00:38:32 · 372 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-21-01-decimal模块
5.7.2节讲到decimal模块创建decimal对象最好用字符串类型创建,用float类型创建经实验也可以,但是两者结果不同。>>> from decimal import Decimal>>> a = Decimal(.1)>>> b = Decimal('.1')>>> print a0.10000000000000000555...>>> print b0.1原因:f原创 2016-07-21 20:03:58 · 390 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-20-02-整型对象缓存
4.3节>>> a = 1.0>>> b = 1.0>>> a is bFalse>>> id(a)30797584L>>> id(b)30797512L>>> c = 1>>> d = 1>>> c is dTrue>>> id(c)30736296L>>> id(d)30736296L原则上a与b指向的不是同一个整型对象,因为整型对象是不可变对象,pyth原创 2016-07-20 22:18:39 · 331 阅读 · 0 评论 -
python核心编程学习笔记-2016-07-20-01-习题3-13
习题3-13要求用户可选择保存修改或取消修改(不改变原始文件)。想法是先做一个原始文件的备份,让用户在备份上修改,再根据用户选择,将备份覆盖原始文件或直接删除备份。本人纯编程小白,不知这个想法是不是有些可行,还是有更好的方法。代码如下import copy# get filenamefname = raw_input('Enter filename: ')print # atte原创 2016-07-20 20:02:07 · 444 阅读 · 0 评论