博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python核心编程读笔 7: 条件和循环
阅读量:5162 次
发布时间:2019-06-13

本文共 1976 字,大约阅读时间需要 6 分钟。

第八章 条件和循环

一、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)

  ...

转载于:https://www.cnblogs.com/hansonwang99/p/4963430.html

你可能感兴趣的文章
小程序-冒泡事件
查看>>
myEclipse快捷键
查看>>
数据结构练习(36)二叉树两结点的最低共同父结点
查看>>
WCF编程系列(一)初识WCF
查看>>
python远程控制电脑
查看>>
android之实现底部TabHost
查看>>
解除与设置计算机锁定
查看>>
PAT A1110 Complete Binary Tree (25 分)——完全二叉树,字符串转数字
查看>>
OpenCV学习笔记-\doc\tutorials\core\basic_linear_transform
查看>>
安装 gradle
查看>>
只输入数字
查看>>
抽屉问题 吃糖果
查看>>
js常用的数组去重方法
查看>>
Setting up a Reverse Proxy using IIS, URL Rewrite and ARR
查看>>
bzoj 4818: [Sdoi2017]序列计数
查看>>
生成对抗网络(Generative Adversarial Network)阅读笔记
查看>>
GIT原理和常用命令速成
查看>>
Jmeter之集合点与关联
查看>>
springboot整合webservice
查看>>
字符串匹配KMP算法详解
查看>>