Python控制语句

介绍

如果说Python和其它语言最大的不同,那么就在于Python强制使用缩进来使得代码更具可读性和优雅。

所有的程序都是由顺序、分支、循环结构所构成的,由于Python并不是使用分号表示结束语句,也不是使用大括号来表示代码块的。

所以对于学过C系语言的人来说,一开始可能觉得有点别扭,但是一旦你知道Python的精要你就会觉得Python这么做是合理和优雅的。

顺序执行语句

所有的程序通常都是从头开始执行,一直往下执行。这比较容易理解,也符合人们的正常思维

print("first")
print("second")

备注:程序会先打印first然后打印second

顺序执行流程会在多线程环境下被打破,以后再具体说。

分支执行语句

Python中的分支有如下两种形式

if else形式:
if condition:
    dosomething1()
else:
    dosomething2()



if elif else形式:
if condition:
    dosomething1()
elif condition:
    dosomething2()
... 
else:
    dosomething3()


备注:第一种形式表示只有两条分支,第二种形式表示有多条分支。
备注:注意书写格式/缩进

循环执行语句

while循环

普通while循环
while condition:
    dosomething()

Python特有while循环
while condition:
    dosomething()
else:
    doOtherthing()

备注:我们常用的还是第一种while循环,第二种while循环在C系语言中是没有的。

for循环

for x in <序列集合>:
    dosomething()


Python的for循环从根本上不同于C/C++的for循环。C#程序员会注意到Python的for循环与C#中的foreach循环十分类似。Java程序员会注意到它与Java 1.5中的for (int i : IntArray)相似。

在C/C++中,如果你想要写for (int i = 0; i < 5; i++),那么用Python,你写成for i in range(0,5)。你会注意到,Python的for循环更加简单、明白、不易出错。

备注:python的for循环和java的增强for循环差不多。

break语句

break语句是用来 终止 循环语句的,即哪怕循环条件没有称为False或序列还没有被完全递归,也停止执行循环语句。

一个重要的注释是,如果你从for或while循环中 终止 ,任何对应的循环else块将不执行。 


import math
for x in range(1,10):
    if (x%3==0):
        break
    print(x)

# 结果为1,2

continue语句

continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后 继续 进行下一轮循环

import math
for x in range(1,10):
    if (x%3==0):
        continue
    print(x)
# 结果为1,2,4,5,7,8

备注:注意区别break和continue的不同点

总结

所有程序设计语言的程序控制语句大体结构上都是相同的,只是在细节方面每种语言可能或多或少有点区别。

掌握好一门语言,再学另外一门语言时就会很容易。推荐先学习一门C系语言,毕竟C语言出现的早影响范围广(很多程序语言都有参考C语言)。

Python的缩进绝对是Python比较特殊的一个特性,理解好了你会爱上它,否则你会觉得它束缚了你写代码。缩进本身就是为了让你写出更具可读性代码。

参考

1、https://docs.python.org/3/reference/compound_stmts.html 2、http://www.ibiblio.org/swaroopch/byteofpython/read/control-flow.html