- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 牙齿健康和龋齿预防科普知识ppt(共67张PPT).pptx VIP
- 2024年10月 政法干警锻造新时代政法铁军专题研讨班发言材料.docx VIP
- 反恐验厂-危机管理和应急恢复计划.doc
- 2024.10 政法干警锻造新时代政法铁军专题研讨班发言材料.docx VIP
- 六年级上册快乐读书吧知识测试题及答案.pdf VIP
- 北京字节跳动科技有限公司运营模式分析及发展趋势预测研究报告.docx VIP
- 《财务风险管理—以乐视公司为例》10000字.docx
- 人教八年级上册物理《光的反射》PPT教学课件.pptx
- 信息资源管理专业毕业设计论文:信息资源管理在学校教育中的应用研究.docx VIP
- 网络安全项目网络建设方案.doc
文档评论(0)