python起步5
echo_shu
|
1#
echo_shu 发表于 2008-10-02 22:02
python起步510:19 2008-9-30 第12章 输入/输出 1、文件 通过创建一个file类的对象来打开一个文件,分别使用file类的read、readline或write方法来恰当地读写文件。 poem = '''\ Programming is fun when the work is done if you wanna make your work also fun: use pthon! ''' f = file('poem.txt','w') f.write(poem) f.close(); f = file('poem.txt') while True: line = f.readline() if len(line) == 0: break print line, f.close() (1)、#模式可以为读模式('r')、写模式('w')或追加模式('a')。使用help(file)来了解其他 (2)、用close关闭这个文件 (3)、读模式会作为默认的模式。 (4)、readline()返回包括行末换行符的一个完整行。当一个 空的 字符串被返回的时候,即表示文件末已经到达 (5)、在print语句上使用逗号来消除自动换行 2、储存器 Python提供一个标准的模块,称为pickle。使用它存储任何python对象,之后你又可以把它完整无缺地取出来。这被称为 持久地 储存对象。 还有另一个模块称为cPickle,它的功能和pickle模块完全相同,只不过它是用C语言编写的,因此要快得多 import cPickle as p #import pickle as p shoplistfile = 'shoplist.data' shoplist = ['apple','mango','carrot'] f = file(shoplistfile,'a') p.dump(shoplist,f) f.close() del shoplist f = file(shoplistfile) storedlist = p.load(f) print storedlist (1)、使用了import..as语法。这是一种便利方法 (2)、首先以写模式打开一个file对象,然后调用储存器模块的dump函数,把对象储存到打开的文件中。这个过程称为 储存 。 (3)、使用pickle模块的load函数的返回来取回对象。这个过程称为 取储存 。 20:07 2008-9-30 第13章 异常 1、try...except import sys try: s = raw_input('Enter something -->') except EOFError: print '\nWhy did you do an EOF to me' sys.exit(); except: print '\nSome error/exception occurred' print 'Done' 每个try从句,至少都有一个相关联的except从句。 2、引发异常 可以使用raise语句 引发 异常。 引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 try: s = raw_input('Enter something-->') if len(s) 20:39 2008-9-30 第14章 Python标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块。 1、sys模块 20:29 2008-10-1 (1)、在Python程序运行的时候,即不是在交互模式下,在sys.argv列表中总是至少有一个项目。它就是当前运行的程序名称,作为sys.argv[0](由于Python从0开始计数)。其他的命令行参数在这个项目之后。 (2)、sys.version字符串给你提供安装的Python的版本信息。sys.version_info元组则提供一个更简单的方法来使你的程序具备Python版本要求功能。 (3)、sys模块中其他令人感兴趣的项目有sys.stdin、sys.stdout和sys.stderr它们分别对应你的程序的标准输入、标准输出和标准错误流。 2、os模块 >>> import os >>> os.name 'nt' >>> os.getcwd >>> os.getcwd() 'C:\\Python25' 。。。。。。 21:42 2008-10-1 第15章 更多python的内容 1、特殊的方法 __init__(self,...) 这个方法在新建对象恰好要被返回使用之前被调用。 __del__(self) 恰好在对象要被删除之前调用。 __str__(self) 在我们对对象使用print语句或是使用str()的时候调用。 __lt__(self,other) 当使用 小于 运算符(等等)都有特殊的方法。 __getitem__(self,key) 使用x[key]索引操作符的时候调用。 __len__(self) 对序列对象使用内建的len()函数的时候调用。 2、单语句块 每一个语句块是通过它的缩进层次与其它块区分开来的,若语句块只包含一句语句,那么你可以在条件语句或循环语句的同一行指明它。 >>> flag = True >>> if flag:print 'yes' ... yes >>> (1)、建议用恰当的缩进,可方便添加一个其他语句。 (2)、上例中,输入if后,Python解释器把提示符改变为“...”以表示语句还没有结束。此时,按回车键确认语句已经完整。 3、列表综合 从一个已有的列表导出一个新的列表 如,将一个列表中所有大于2的数变成以前的2倍 listone = [2,3,4] listtwo = [2*i for i in listone if i > 2] print listtwo 注:通常都使用循环来处理列表中的每一个元素。 4、在函数中接收元组和列表 在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键/值对。 >>> def powersum(power,*args): ... '''return sum''' ... total = 0 ... for i in args: ... total +=pow(i,power) ... return total ... >>> powersum(2,3,4) 25 >>> 注意缩进:如果在...后没有按一次tab键,则提示: >>> def powersum(power,*args): ... '''returen the sum of each argument raised to specified power.''' File "", line 2 '''returen the sum of each argument raised to specified power.''' ^ IndentationError: expected an indented block 5、lambda形式 lambda语句被用来创建新的函数对象,并且在运行时返回它们。 def make_repeater(n): return lambda s: s*n twice = make_repeater(2) print twice('word') print twice(5) lambda语句用来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。注意,即便是print语句也不能用在lambda形式中,只能使用表达式。 6、exec和eval语句 exec语句用来执行储存在字符串或文件中的Python语句。 >>> exec 'print "hello world"' hello world eval语句用来计算存储在字符串中的有效Python表达式。 >>> eval('3*2') 6 7、assert语句 assert语句用来声明某个条件是真的。 当assert语句失败的时候,会引发一个AssertionError。 >>> mylist = ['item'] >>> assert len(mylist) >= 1 >>> mylist.pop() 'item' >>> assert len(mylist) >=1 Traceback (most recent call last): File "", line 1, in AssertionError >>> 注:通过help(list)查到pop的解释:pop(...) L.pop([index]) -> item -- remove and return item at index (default last) 8、repr函数 repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr(object)) == object。 >>> i = [] >>> i.append('item') >>> 'i' 'i' >>> `i` "['item']" >>> repr(i) "['item']" >>> 注:反引号不是单引号 可以通过定义类的__repr__方法来控制你的对象在被repr函数调用的时候返回的内容。 20:33 2008-10-2 第16章 接下来学习什么 1、图形软件 使用Python的GUI库,可供使用的Python的GUI: (1)、PyQt 这是Qt工具包的Python绑定。Qt工具包是构建KDE的基石。 (2)、PyGTK 这是GTK+工具包的Python绑定。GTK+工具包是构建GNOME的基石。 (3)、wxPython 这是wxWidgets工具包的Python绑定。 (4)、TkInter 这是现存最老的GUI工具包之一。如果你使用过IDLE,它就是一个TkInter程序。 选择时考虑的因素:是否愿意为GUI工具付费;想让程序运行在Linux下、Windows下还是两者都要;是Linux下的KDE用户还是GNOME用户而定。 22:01 2008-10-2 搞定起步,实践后续...... |