python 参考手册 第五章

循环加上数字索引

for i,x in enumerate(s):
    statements

zip()的用法:

for x,y in zip(s,t):#一次性生成元祖列表
    statements

for x,y in itertools.zip(s,t):#一次生成一个元祖
    statements

continue 和break 只是应用于正在执行的最内层循环,跳出多层循环,可以使用异常。

continue对于处理文本时跳过空行很实用。

异常程序可以同时捕捉多个异常

try:
    do something
except (IOError, TypeError, NameError) as e:
    #处理错误
定义新异常

class DeviceError(Exception):
    def __init__(self,errno,msg):
        self.args = (errno, msg)
        self.errno = errno
        self.errmsg = msg
with语句需要对象支持上下文管理协议(__enter__() 和__exit__() )

class ListTransaction(object):
    def __init__(self,thelist):
        self.thelist = thelist
    def __enter__(self):
        self.workingcopy = list(self.thelist)
        return self.workingcopy
    def __exit__(self):
        if type is None:
            self.thelist[:] = self.workingcopy
            return False
通过包装生成器 contextlib 实现上下文管理器

from contextlib import contextmanager
@contextmanager
def ListTransaction(thelist):
    workingcopy = list(thelist)
    yield workingcopy
    thelist[:]=workingcopy

__debug__  assert 和 python -O选项

-O选项可以忽略assert ,if __debug__等语句



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值