
在我们平时所写的程序中,总有一系列的语句,Python总是忠实的按照它们的顺序执行它们。如果要改变语句流的顺序,我们就要用到控制流。
说控制流可能很陌生,但是如果说具体来说就是if/for/while,你一定倍感亲切!
if
if是条件检验语句, 如果条件为真,我们运行一块语句(称为 if-块 ), 否则我们处理另外一块语句(称为 else-块 )。 else从句是可选的。
1 2 |
if True: print 'Yes, it is true' |
上面是一个最简单的有效if语句,注意if语句的结尾处包含一个冒号,我们通过它告诉Python下面跟着一个语句块。我们使用了缩进层次来告诉Python每个语句分别属于哪一个块。这就是为什么缩进在Python如此重要的原因。
1 2 3 4 5 6 |
if a == b: print 'a=b' elif a < b: print 'a<b' else: print 'a>b' |
上面的例子稍微复杂了点,但是还是很容易理解。
其中,我们用到了elif从句,用来做多条件选择。
elif和else从句都必须在逻辑行结尾处有一个冒号,下面跟着一个相应的语句块,包括正确的缩进。
同时也可以在一个if块中使用另外一个if语句,这被称为嵌套的if语句。
在这里还要注意的一点是:在Python中没有switch语句。但是你可以使用if..elif..else语句来完成同样的工作,或者使用Python中的字典。
while
只要在一个条件为真的情况下,while语句允许你重复执行一块语句。
while语句属于循环语句,它有一个可选的else从句。
1 2 3 4 5 6 7 8 9 10 |
a = 0 b = 100 while a<b: print 'a<b' a= a + 1 else: print 'a=b' print 'Done' |
在上面的例子中,程序会判断while后面的条件是否为真,若为真,则执行后面的while-块。在执行了这块程序之后,再次检验条件,若为真则再次执行while-块,一直到条件为假,执行else-块。
else块事实上是多余的,因为你可以把其中的语句放在同一块(与while相同)中,跟在while语句之后,这样可以取得相同的效果。
同样的,我们可以在while循环中使用一个else从句。
for
for..in是另外一个循环语句,它在一序列的对象上递归,即逐一使用队列中的每个项目。
1 2 3 4 |
for i in range(1, 5): print i else: print 'The for loop is over' |
在上面的例子中,for i in range(1,5)等价于for i in [1, 2, 3, 4]。for循环在这个范围内递归。这就如同把序列中的每个数赋值给i,一次一个,然后以每个i的值执行这个程序块。
在C/C++中,你要写for (int i = 0; i < 5; i++),那么用Python,你应该写成for i in range(0,5)。你会注意到,Python的for循环更加简单、明白、不易出错。
else部分是可选的。如果包含else,它总是在for循环结束后执行一次,除非遇到break语句。
break语句和continue语句:
break语句是用来终止循环语句的,即哪怕循环条件没有称为False或序列还没有被完全递归,也停止执行循环语句。一个重要的注释是,如果你从for或while循环中终止 ,任何对应的循环else块将不执行。也就是说,直接跳出整个循环。
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。注意这个继续的概念,简单点讲,就是停止执行当前循环中的语句,立即判断循环条件,进行下一轮循环。
本文链接地址: Python 入门篇 – 控制流
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
如果您愿意为文章的内容或想法提供支持,欢迎点击下边的捐赠按钮,资助作者创作更多高价值高品质的内容。