第三章结构化程序设计
3.1条件语句
3.1.1if语句
只需要判断一个条件,并且在该条件为 True 时执行特定的代码块,而在条件为 False 时不做任何额外处理,就可以使用 if 语句。其流程图如下:
例1:比较两个数的最小值。
3.1.2if...else语句
当你需要判断一个条件,并且根据这个条件的结果执行两个不同的代码块之一时,使用 if-else 语句。也就是说,条件为 True 时执行语句块1,条件为 False 时执行语句块2,其流程图如下:
例2:判断一个数是奇数还是偶数。
例3:模拟用户登录。
if-else还支持如下形式的表达式,实现类似于双分支选择结构类似的效果。
格式:表达式1 if 条件else 表达式2。当条件为True时返回表达式1的值,否则返回表达式2的值。
3.1.3 if...elif...else语句
用于针对某一事件的多种情况进行处理,通常表现为如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理。当你需要判断多个互斥的条件,并且根据不同的条件执行不同的代码块时,使用 if-elif-else 语句。Python 会依次检查每个条件表达式,一旦某个条件为 True,就执行对应的语句块,然后跳过后续的 elif 和 else 部分;如果所有 if 和 elif 条件都为 False,则执行 else 语句块。整个判断过程是互斥的,即只会有一个代码块被执行,其流程图如下:
例4:判断用户第几天上什么课。
3.1.4 if语句的嵌套
相互嵌套语句书写时,要严格遵守不同级别语句块的缩进规范。
例5:酒驾判断。
例6:分数等级转换。
例7:判断某一年是否为闰年。
3.2循环语句
3.2.1while循环
当表达式的返回值为真时,执行语句块(或称为“循环体”),然后重新判断表达式的返回值,直到表达式的返回值为假时,退出循环,具体流程如右图所示。
例8:用while循环实现计算1~99的整数。
例9:玩家输入一个数字,程序判断是奇数还是偶数。
例10: 死循环。
3.2.2for循环
迭代的对象可以是任何有序列的对象,如字符串、列表和元组等。被执行的语句块也称为“循环体”。
例11:依次输出一个字符串中的所有字符,各字符之间以逗号分割。
range 对象是一种可迭代对象,意味着你可以使用 for 循环遍历它,但它本身并不立即生成所有的元素,而是在需要时逐个生成,这种方式节省了内存。
例12:用for循环实现计算1~99的整数和。
例13:求输出所有的“水仙花数”。
:
例14:判断一个数是否是素数。
例15:打印九九乘法表。
3.3跳转语句
3.3.1break和continue的区别
例16.使用break语句跳出while循环。
例17:使用break语句跳出嵌套循环的内层循环。
3.3.2pass语句
例18:用for循环输出1~10之间偶数,非偶用pass。