选择结构
if结构
- if和else同时存在:如果if条件不成立,则执行else语句。
- 只存在if,不存在else:没有else,实际上与空的else 等价。如果if后的条件不成立,那么计算机什么都不用执行。
强制缩进
Python与C语言、Java语言等不太相同的是,Python用缩进来表明代码的从属关系,所以缩进是强制的。而C语言、Java语言等都是用成对的花括号来表示从属于if的代码块,同一段代码的对比如下:
Python的写法:
C语言的写法:
当然,C语言也可以使用缩进,但是与不缩进没有任何区别,得到的是相同的结果。
if的嵌套与elif
选择结构让程序摆脱了枯燥的指令式排列。程序的内部可以出现分支一样的结构。根据条件不同,同一个程序可以工作于多变的环境。通过elif语法和嵌套使用if,程序可以有更加丰富多彩的分支方式。
下面的程序使用了elif结构。根据条件的不同,程序有三个分支:
这里有三个块,分别从属于if、elif和 else。Python先检测if的条件,如果发现if的条件为假,则跳过隶属于if 的程序块,检测 elif的条件;如果elif的条件还是假,则执行else块。程序根据条件,只执行三个分支中的一个。由于i的值是1,所以最终只有if部分被执行。按照同样的原理,你也可以在if和 else之间增加多个elif,从而给程序开出更多的分支。
我们还可以让一个if结构嵌套在另一个if结构中:
在进行完第一个if 判断后,如果条件成立,那么程序依次运行,会遇到第二个if 结构。程序将继续根据条件判断并决定是否执行。第二个后面的程序块相对于该if又缩进了四个空格,成为从属的从属。进一步缩进的程序隶属于内层的if。
循环结构
循环用于重复执行一些程序块,在Python中,循环有for和while两种。
for循环
for循环的重复次数是确定的。for循环会依次从序列中取出元素,赋予给紧跟在for后面的变量。
从序列中取出元素,再赋予给一个变量并在隶属程序中使用,是for循环的一个便利之处。但有的时候,我们只是想简单地重复特定的次数,不建立序列,可以使用range()函数。
注意:这里还是有变量i,i在循环中起到计数的作用。
while循环
while循环的用法:
while后面紧跟着一个条件。如果条件为真,则while会不停地循环执行隶属于它的语句。只有条件为假时,程序才会停止。在whil的隶属程序中,我们不断改变参与条件判断的变量i,直到它变成10,以至于还不满足条件而终止循环。这是while循环常见的做法。否则,如果while的条件始终为真,则会变成无限循环。
一旦有了无限循环,程序就会不停地运行下去,直到程序被打断或电脑关机。但有时,无限循环也是有用处的。很多图形程序中就有无限循环,用于检查页面的状态等。如果我们开发一个无限抢票的程序,这样的无限循环听起来也不错。无限循环可以用简单暴力的方法写出来:
跳过和终止
循环结构还提供了两个有用的语句,可以在循环结构内部使用,用于跳过或终止循环。
- continue
跳过循环的这一次执行,进行下一次的循环操作 - break
停止执行整个循环