Python 指南4.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Python 指南4

4. 其它流程控制工具 除了前面介绍的 while 语句,Python 还从别的语言中借鉴了一些流程控制功能,并有所改变。 ? 4.1 if 语句 也许最有句的语句类型是 if 语句。例如: x = int(raw_input(Please enter an integer: )) if x 0: ... x = 0 ... print Negative changed to zero ... elif x == 0: ... print Zero ... elif x == 1: ... print Single ... else: ... print More ... 可能会有 0 或很多个 elif 部分,else 是可选的。关键字“elif ” 是“ else if ”的缩写,这个可以有效避免过深的缩进。if ... elif ... elif ... 序列用于替代其它语言中的 switch 或 case 语句。 ? 4.2 for 语句 Python中的for? 语句和你在 C 或 Pascal 中使用的略有不同。通常的循环可能会依据一个等差数值步进过程(如Pascal)或由用户来定义迭代步骤和中止条件(如C),Python 的 for? 语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代。例如(没有暗指): # Measure some strings: ... a = [cat, window, defenestrate] for x in a: ... print x, len(x) ... cat 3 window 6 defenestrate 12 在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。通常使用切片标识就可以很方便的做到这一点: for x in a[:]: # make a slice copy of the entire list ... if len(x) 6: a.insert(0, x) ... a [defenestrate, cat, window, defenestrate] ? 4.3 range() 函数 如果你需要一个数值序列,内置函数range()可能会很有用,它生成一个等差级数链表。 range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range(10)生成了一个包含10个值的链表,它准确的用链表的索引值填充了这个长度为10的列表,所生成的链表中不包括范围中的结束值。也可以让range操作从另一个数值开始,或者可以指定一个不同的步进值(甚至是负数,有时这也被称为“步长”): range(5, 10) [5, 6, 7, 8, 9] range(0, 10, 3) [0, 3, 6, 9] range(-10, -100, -30) [-10, -40, -70] 需要迭代链表索引的话,如下所示结合使用range()和len(): a = [Mary, had, a, little, lamb] for i in range(len(a)): ... print i, a[i] ... 0 Mary 1 had 2 a 3 little 4 lamb ? 4.4 break 和 continue 语句, 以及循环中的 else 子句 break语句和C中的类似,用于跳出最近的一级for或while循环。 continue 语句是从C中借鉴来的,它表示循环继续执行下一次迭代。 循环可以有一个else子句;它在循环迭代完整个列表(对于for)或执行条件为false(对于while)时执行,但循环被break中止的情况下不会执行。以下搜索素数的示例程序演示了这个子句: for n in range(2, 10): ... for x in range(2, n): ... if n % x == 0: ... print n, equals, x, *, n/x ... break ... else: ... # loop fell through without finding a factor ... print n, is a prime number ... 2 is a prime number 3 is a prime number 4 equals 2 * 2 5 is a pri

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档