![每个人的Python:数学、算法和游戏编程训练营](https://wfqqreader-1252317822.image.myqcloud.com/cover/137/44510137/b_44510137.jpg)
1.4.4 流程控制语句
默认情况下,代码都是根据语句的先后顺序执行的,但是并非所有的程序逻辑都是顺序的,流程控制是一个程序的灵魂。条件语句、循环语句和中断语句是常用的流程控制语句。条件语句用来构建分支结构,即程序执行时根据条件选择要执行的逻辑,例如:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T28_28376.jpg?sign=1738880426-rXlFUUyAW79DNS9IT2Q0AS2MvGsTNseT-0-6f71af3ead53bf6945b227f0697f4298)
对于if条件语句,如果其判定的条件结果为True,则会执行if代码块内的代码,否则会直接跳过。也可以将if与else结合使用,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T28_28378.jpg?sign=1738880426-qEQUjlB2UuZKXyHpUllnTz32QU3saTkT-0-a0269670f689748dbf699da1ffe059f6)
在if-else语句中,如果要判定的条件结果为True,则会执行if代码块内部的代码,否则会执行else代码块内部的代码,if-else是一种常用的二选一结构。如果有多种分支条件,可以使用if-elif-else结构,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T28_28380.jpg?sign=1738880426-dHN1nbvs2ifqEfDdPCZMge08shD00WBe-0-c6739ae0ebe4a0d062423d98f92b79d7)
循环语句用来使某段逻辑重复执行,Python中有while循环和for循环两种循环结构。while循环比较简单,其首先会进行循环条件的判定,如果条件满足,则会执行循环体中的代码,循环体中的代码执行完成后会再次进行循环条件的判断,如果依然满足循环条件,会重复执行循环体中的代码,直到循环条件不满足为止,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T29_28382.jpg?sign=1738880426-ao6KhhpalQEwEmTIhOYfZeYF6sdIULBY-0-6998003681dbad013bdedd28cedc1877)
while-else结构也可以组合使用,当不满足循环条件时,会执行else代码块中的代码,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T29_28384.jpg?sign=1738880426-UzjVqQCP77NZKTaQOZPyDFpviCv9TNj0-0-62fca7ca82749ab807161924f6de2e6e)
需要注意,一般在while循环体中都要对循环变量进行操作,否则可能会产生无限循环。for循环是Python中提供的一种专门用来进行集合遍历的结构,使用十分方便,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T29_28386.jpg?sign=1738880426-pypgzS9B4qGdDN8VCOwQtlKg1anczXAq-0-19a3e803d67d74e059b7f860d691a094)
同样的,for-else也可以结合使用:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T29_28388.jpg?sign=1738880426-ErlS4SUseoqRmECU9Xf3HKfwvT3kfyZL-0-cf2b2743c5bc2bc60f50c3d83a478bc3)
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-P29_11753.jpg?sign=1738880426-hDga6hiXxq506gZg5AEumS12mWz8k1lE-0-1fec8b3bd1affd38e8e5472ce1be1087)
循环语句通常需要配合中断语句一起使用,中断语句提供了一种方式可以快速地跳出循环而不用依赖循环变量。break语句可以直接跳出当前的循环结构,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T30_28390.jpg?sign=1738880426-6isoRKaaBl3WhlPqdppeSBiqweHcYIXh-0-a09fefe0a8876c7eedacf9b04ce87009)
上面的代码中,当sum变量的值大于100的时候就会终止循环,使用break中断语句后,不改变循环变量的值也可以避免死循环的产生。Python中的中断语句除了break外,还有continue语句,continue语句的特点是跳过本次循环。需要注意,是跳过本次循环,而不是跳出循环结构,示例如下:
![](https://epubservercos.yuewen.com/33C5B1/23721678209556606/epubprivate/OEBPS/Images/Figure-T30_28392.jpg?sign=1738880426-kGHlouJVbe2BawDDYAMoaac6FsIi3ffw-0-be8a27d94aa7d5c2295d32eaf0a2713f)
执行上面的代码,从打印信息可以看到,当count等于3时没有执行打印语句,即跳过了本次循环,直接进行循环条件的判定,进入下一轮循环。