zoukankan      html  css  js  c++  java
  • Python核心编程读笔 7: 条件和循环

    第八章 条件和循环

    一、if

    python中的条件表达式:很奇葩!!!

          smaller = (x < y and [x] or [y])[0]

        或者:

          smaller = x if x < y else y

    二、while

    三、for

    1 通过序列项迭代:

      for eachName in nameList:
    2 通过索引迭代:

      >>>for nameIndex in range(len(nameList)):
      ... print "Liu,", nameList[nameIndex]
    3 使用序列项和索引迭代:

      >>> for i, eachLee in enumerate(nameList):
      ... print "%d %s Lee" % (i+1, eachLee)

    四、break和continue

    五、pass

    Python 没有使用传统的大括号来标记代码块, 而有时有些地方在语法上要求要有代码, 而 Python 中没有对应的空大括号或是分号( ; ) 来表示 C 语言中的"不做任何事" , 若你在需要子语句块的地方不写任何语句, 解释器会提示你语法错误. 因此, Python 提供了 pass 语句, 它不做任何事情 - 即 NOP , ( No OPeration , 无操作)

    六、Iterators迭代器

    使用迭代器:

      序列

        for i in seq:
          do_something_to(i)

        实际上是这样工作的:
        fetch = iter(seq)
        while True:
          try:
            i = fetch.next()
          except StopIteration:
            break
          do_something_to(i)
      
      字典

        字典的迭代器会遍历它的键(keys). 语句 for eachKey in myDict.keys()可缩写为 for eachKey in myDict;

        另外, Python 还引进了三个新的内建字典方法来定义迭代: myDict.iterkeys() (通过 keys 迭代), myDict.itervalues() (通过values迭代), 以及 myDicit.iteritems() (通过key/value 对来迭代).

      文件:

        文件对象生成的迭代器会自动调用readline()方法. 这样, 循环就可以访问文本文件的所有行。程序员可以使用更简单的 for eachLine in myFile 替换 for eachLine in myFile.readlines() :

    七、列表解析

    Python 2.0 中我们加入了列表解析, 使语言有了一次革命化的发展,提供给用户了一个强大的工具, 只用一行代码就可以创建包含特定内容的列表!!!

    基本语法:

      [expr for iter_var in iterable]

      [expr for iter_var in iterable if cond_expr]

    实际举例:

      >>> [x ** 2 for x in range(6)]
      [0, 1, 4, 9, 16, 25]

      >>> [x for x in seq if x % 2]
      [11, 9, 9, 9, 23, 9, 7, 11]

      >>> [(x+1,y+1) for x in range(3) for y in range(5)]
      [(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2,
      3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5)]

    八、生成器表达式

    生成器表达式是列表解析的一个扩展

    基本语法:

      (expr for iter_var in iterable if cond_expr)

    实际举例:

      >>>x_product_pairs = ((i, j) for i in rows for j in cols())
      >>>type(x_product_pairs)

      <type 'generator'>

      >>>for i in x_product_pairs:

      ...  print i

      ...

      (0,0)

      (0,1)

      ...

  • 相关阅读:
    Java8初体验(二)Stream语法详解
    java8的新特性以及用法简介
    HDFS之SequenceFile和MapFile
    深入分析Parquet列式存储格式【转】
    Flume中的HDFS Sink配置参数说明【转】
    采用alluxio提升MR job和Spark job性能的注意点
    spark on alluxio和MR on alluxio测试(改进版)【转】
    python入门-分类和回归各种初级算法
    C++函数调用时的参数传递-3中传递方式
    OpenCV颜色空间——HLS颜色空间
  • 原文地址:https://www.cnblogs.com/hansonwang99/p/4963430.html
Copyright © 2011-2022 走看看