posts - 13,  comments - 3,  trackbacks - 0

条件语句
    if相关
    格式:
        1)    if expression : statement #只有一个if并且代码块只有一行,可以直接写在:后面
        2)    if expression:
                statement
            else:
                statement
        3)    if expression:
                statement
            elif expr2:
                statement
            elif ... :
                ...
            else:
                statement n
    三元操作符
        X if C else Y
    while / for and break / else
    while循环基本结构
        while xxx:
            statement
    for循环基本结构
        for xx in iterable:
            statement
    循环+else
        loop
            if ...:
                xxx
                break
        else:
            statement
        循环+else结构,指的是如果循环完成,则执行else中的语句
    continue与c / java中一样
    pass: nop
迭代器
    迭代器的要求:
        提供next()方法,每次都取出下一个对象。当next到末尾时,抛出一个StopIteration异常
    迭代器的使用:
        for循环可以支持所有可迭代的对象 (列表、字典、文件。。。)
        使用迭代器时不应当改变其内容
    创建迭代器
        对一个对象调用 iter() 就可以得到它的迭代器. 它的语法如下:
        iter(obj)
        iter(func, sentinel )
        如果是传递两个参数给 iter() , 它会重复地调用 func , 直到迭代器的下个值等于sentinel

列表解析
    语法
        [expr for iter_var in iterable if cond_expr] #[]不能省略
    结果:
        根据if条件,对iterable中所有元素进行expr,并返回一个结果列表
        1. 不满足if条件的元素会被忽略,不会在结果列表中
        2. 满足if条件的元素会进行expr
        3. 最后会创建一个新列表保存结果
    eg
        >>> a = [1,2,3,4,5,6]
        >>> p = [value*2 for value in a if value%2==0]
        >>> print p
        [4, 8, 12]
        >>>

生成器表达式
    语法
        (expr for iter_var in iterable if cond_expr) #()可以省略
    特点(与列表解析的区别)
        表达式返回的是一个生成器。这个生成器会根据要求,把元素一个一个“生成出来”
        优点:节约内存空间,在很多情况下也能提高速度
    例子:
        return max(len(x.strip()) for x in open('/etc/motd')) #统计/etc/motd文件中最长的一行

 

note note

posted on 2011-06-13 15:40 Antony Lee 阅读(186) 评论(0)  编辑  收藏 所属分类: Python学习笔记

只有注册用户登录后才能发表评论。


网站导航:
 

<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(1)

随笔分类

随笔档案

文章分类

搜索

  •  

最新评论

阅读排行榜

评论排行榜