Python特别语法

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)<3:
        raise ShortInputException(len(s),3)
except EOFError:
    print '\nWhy did you do an EOF on me?'
except ShortInputException,x:
    print 'ShortINputException:The input was of length %d,\
    was expecting at least %d' % (x.length,x.atleast)
else:
    print 'No exception was raised.'
3、try...finally
在一个try块下,你可以同时使用except从句和finally块。如果你要同时使用它们的话,需要把一个嵌入另外一个。
 
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
<built-in function 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 "<stdin>", 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 "<stdin>", line 1, in <module>
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用户而定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值