Python核心编程学习日记之条件和循环

第8章: 条件和循环

  1. if语句
    1. 格式:if expression:
         expr_true_suite
      
      
  2. else语句
    1. 格式:if expression:
         expr_true_suite
      else:
         expr_false_suite  
      
    2. Python的缩进使用强制使代码正确对齐,避免出现“悬挂else”的问题
  3. elif语句
    1. 可以使用序列和成员关系操作符,或者Python字典来替换大段的if_elif_else语句
  4. 条件表达式(三元操作符)
    1. 模拟三元表达式的一种方法:(C and [X] or [Y])[0].具体实现原理参照该篇博客。and和or的返回值是决定其值的操作数
    2. Python2.5将语法确定为:X if C else Y
  5. while语句,for语句
    1. for循环会访问一个可迭代对象(例如序列或是迭代器)中的所有元素,在所有条目都处理过后结束循环
    2. 迭代序列基本方法:通过序列项迭代;通过序列索引迭代;使用项和索引迭代,调用enumerate()函数
    3. for循环访问迭代器:迭代器对象有一个next()方法,所有条目迭代完成后,迭代器引发一个StopIteration异常,for语句在内部调用next()捕获异常
    4. range()完整语法:range(start, end, step = 1),不包括end
    5. range()简略语法:range(end)或者range(start,end)
  6. break语句;continue语句;pass语句;else语句
    1. pass语句相当于c语言中一个只有;的语句,表示什么操作也不做,只是为了满足语法要求
    2. else语句也可以在while和for循环中使用else语句,在循环结束之后执行,break语句也会跳过else块
  7. 迭代器和iter()函数
    1. 迭代器就是一个有next()方法的对象.调用一次next()获取下一个项。全部取出,引发一个StopIteration异常,提示外部调用者,迭代完成
    2. 迭代器不能向后移动,不能回到开始,不能复制一个迭代器,“一次性使用”。
    3. 使用迭代器
      1. 序列; 字典的迭代器会遍历它的键:for each in dict:, 另外三个定义迭代方法:myDict.iterkeys(),myDict.itervalues(),myDict.iteritems()
      2. 文件对象生成的迭代器会自动调用readline()方法
      3. 可变对象:在迭代可变对象时,修改它们一定要慎重,最好不要这样做
      4. 调用iter(obj)或者iter(func,sentinel)得到对象的迭代器。实现了__iter__()和next()的类可以作为迭代器
      5. 列表解析语法:[expr for iter_var in iterable] 结果值是expr表达式对于每一个列表条目作用产生的列表
      6. [expr for iter_var in iterable if cond_expr] if语句过滤/捕获序列成员。列表解析支持多重嵌套for循环以及多个if子句
      7. 当大量数据的迭代器用于列表解析,由于要生成所有数据,内存利用性能不佳。生成器表达式:(expr for iter_var in iterable if cond_expr) 生成器用作参数,每次计算出一个条目,并未建立真正列表,所有内存利用更有效
原文地址:https://www.cnblogs.com/xyqhello/p/2865180.html