python教程:简明 Python 教程 -- 第6章 控制流来源: 发布时间:星期四, 2009年1月8日 浏览:36次 评论:0
介绍
在到目前为止我们所见到中总是有系列语句Python忠实地按照它们顺序执行它们如果你想要改变语句流执行顺序该如何办呢?例如你想要让做些决定根据区别情况做区别事情例如根据时间打印“早上好”或者“晚上好” 你可能已经猜到了这是通过控制流语句实现在Python中有 3种控制流语句——、for和while 语句 语句用来检验个条件 如果 条件为真我们运行块语句(称为 -块 ) 否则 我们处理另外块语句(称为 -块 ) 从句是可选 使用语句 例6.1 使用语句 #!/usr/bin/python (源文件:code/.py) 输出 $ python .py 它如何工作 在这个中我们从用户处得到猜测数然后检验这个数是否是我们手中那个我们把变量number设置为我们想要任何整数在这个例子中是23然后我们使用raw_input取得用户猜测数字只是重用段我们将在下章学习更多有关知识 我们为内建raw_input提供个串这个串被打印在屏幕上然后等待用户输入旦我们输入些东西然后按回车键的后返回输入对于raw_input来说是个串我们通过把这个串转换为整数并把它存储在变量guess中事实上是个类不过你想在对它所需了解只是它把个串转换为个整数(假设这个串含有个有效整数文本信息) 接下来我们将用户猜测和我们选择数做比较如果他们相等我们打印个成功消息注意我们使用了缩进层次来告诉Python每个语句分别属于哪个块这就是为什么缩进在Python如此重要原因我希望你能够坚持“每个缩进层个制表符”规则你是这样吗? 注意语句在结尾处包含个冒号——我们通过它告诉Python下面跟着个语句块 然后我们检验猜测是否小于我们数如果是这样我们告诉用户它猜测大了点我们在这里使用是el从句它事实上把两个相关联 - 语句合并为个-el-语句这使得更加简单并且减少了所需缩进数量 el和从句都必须在逻辑行结尾处有个冒号下面跟着个相应语句块(当然还包括正确缩进) 你也可以在个块中使用另外个语句等等——这被称为嵌套语句 记住el和部分是可选个最简单有效语句是: True: 在Python执行完个完整语句以及和它相关联el和从句的后它移向语句块下个语句在这个例子中这个语句块是主块从主块开始执行而下个语句是pr 'Done'语句在这的后Python看到结尾简单结束运行 尽管这是个非常简单但是我已经在这个简单中指出了许多你应该注意地方所有这些都是十分直接了当(对于那些拥有C/C背景用户来说是尤为简单)它们在开始时会引起你注意但是以后你会对它们感到熟悉、“自然” 给C/C员注释 在Python中没有switch语句你可以使用..el..语句来完成同样工作(在某些场合使用字典会更加快捷) while语句 只要在个条件为真情况下while语句允许你重复执行块语句while语句是所谓 循环 语句个例子while语句有个可选从句 使用while语句 例6.2 使用while语句 #!/usr/bin/python (源文件:code/while.py) 输出 $ python while.py 它如何工作 在这个中我们仍然使用了猜数游戏作为例子但是这个例子优势在于用户可以不断猜数直到他猜对为止——这样就不需要像前面那个例子那样为每次猜测重复执行遍这个例子恰当地介绍说明了while语句使用 我们把raw_input和语句移到了while循环内并且在while循环开始前把running变量设置为True首先我们检验变量running是否为True然后执行后面 while-块 在执行了这块的后再次检验条件在这个例子中条件是running变量如果它是真我们再次执行while-块否则我们继续执行可选-块并接着执行下个语句 当while循环条件变为False时候块才被执行——这甚至也可能是在条件第次被检验时候如果while循环有个从句它将始终被执行除非你while循环将永远循环下去不会结束! True和False被称为布尔类型你可以分别把它们等效地理解为值1和0在检验重要条件时候布尔类型十分重要它们并不是真实值1 块事实上是多余你可以把其中语句放在同块(和while相同)中跟在while语句的后这样可以取得相同效果 给C/C员注释 记住你可以在while循环中使用个从句 for循环 for..in是另外个循环语句它在序列对象上 递归 即逐使用队列中每个项目我们会在后面章节中更加详细地学习序列 使用for语句 例6.3 使用for语句 #!/usr/bin/python 输出 $ python for.py 它如何工作 在这个中我们打印了个 序列 数我们使用内建range生成这个数序列 我们所做只是提供两个数range返回个序列数这个序列从第个数开始到第 2个数为止例如range(1,5)给出序列[1, 2, 3, 4]默认地range步长为1如果我们为range提供第 3个数那么它将成为步长例如range(1,5,2)给出[1,3]记住range 向上 延伸到第 2个数即它不包含第 2个数 for循环在这个范围内递归——for i in range(1,5)等价于for i in [1, 2, 3, 4]这就如同把序列中每个数(或对象)赋值给i次个然后以每个i值执行这个块在这个例子中我们只是打印i值 记住部分是可选如果包含它总是在for循环结束后执行次除非遇到语句 记住for..in循环对于任何序列都适用这里我们使用是个由内建range生成数列表但是广义说来我们可以使用任何种类由任何对象组成序列!我们会在后面章节中详细探索这个观点 给C/C/Java/C#员注释 Pythonfor循环从根本上区别于C/Cfor循环C#员会注意到Pythonfor循环和C#中foreach循环十分类似Java员会注意到它和Java 1.5中for ( i : IntArray)相似 在C/C中如果你想要写for ( i = 0; i < 5; i)那么用Python你写成for i in range(0,5)你会注意到Pythonfor循环更加简单、明白、不易出错 语句 语句是用来 终止 循环语句即哪怕循环条件没有称为False或序列还没有被完全递归也停止执行循环语句 个重要注释是如果你从for或while循环中 终止 任何对应循环块将不执行 使用语句 例6.4 使用语句 #!/usr/bin/python (源文件:code/.py) 输出 $ python .py 它如何工作 在这个中我们反复地取得用户地输入然后打印每次输入地长度我们提供了个特别条件来停止即检验用户输入是否是'quit'通过 终止 循环到达结尾来停止 输入串长度通过内建len取得 记住语句也可以在for循环中使用 G2Python诗 我在这里输入是我所写段小诗称为G2Python诗: Programming is fun continue语句 continue语句被用来告诉Python跳过当前循环块中剩余语句然后 继续 进行下轮循环 使用continue语句 例6.5 使用continue语句 #!/usr/bin/python (源文件:code/continue.py) 输出 $ python continue.py 它如何工作 在这个中我们从用户处取得输入但是我们仅仅当它们有至少3个长时候才处理它们所以我们使用内建len来取得长度如果长度小于3我们将使用continue语句忽略块中剩余语句否则这个循环中剩余语句将被执行我们可以在这里做我们希望任何处理 注意continue语句对于for循环也有效 概括 我们已经学习了如何使用 3种控制流语句——、while和for以及和它们相关和continue语句它们是Python中最常用部分熟悉这些控制流是应当掌握基本技能 接下来我们将学习如何创建和使用 0
相关文章
读者评论
发表评论 |