Python流程控制语句(五):程序结构、选择语句
前言:在软件开发的广阔天地中,程序结构和流程控制语句构成了程序设计的骨架和血脉。它们不仅决定了代码的组织方式,还直接影响程序的执行流程和效率。今天,我们将聚焦于Python中的程序结构和选择语句,这两个核心概念对于任何希望深入理解编程语言的开发者来说都是至关重要的。
程序结构指的是代码的组织方式,它包括了函数、模块、类等组件,它们共同协作,使得程序既模块化又易于维护。而选择语句,如if、elif和else,则是控制程序执行流程的关键,它们允许程序根据不同的条件执行不同的代码块,从而实现逻辑的分支。
在本博客中,我们将深入探讨Python中的程序结构和选择语句。我们将从程序结构的基本概念出发,探讨如何合理地组织代码,使其既清晰又高效。接着,我们将详细解释选择语句的语法和逻辑,通过实例演示它们如何在实际编程中发挥作用。
无论您是刚开始学习Python的新手,还是已经有一定基础的开发者,本博客都将为您提供宝贵的信息和见解。通过理解程序结构和掌握选择语句的使用,您将能够编写出更加健壮、灵活和易于维护的代码。现在,让我们揭开Python程序结构和选择语句的神秘面纱,一起探索它们如何塑造程序的行为和逻辑。
一、程序结构
Python的程序结构主要是指代码的组织方式,它包括以下几个方面:
-
模块(Modules):Python中的模块是包含Python定义和声明的文件。模块可以定义函数、类和变量,也可以包含可执行的代码。
-
包(Packages):包是模块的集合,可以包含子包。它允许你将相关的模块组织在一起,形成一个更大的应用程序。
-
函数(Functions):函数是执行特定任务的代码块,可以重复调用。函数可以有参数和返回值。
-
类(Classes):类是创建对象的蓝图。它定义了对象的属性和方法。
-
条件表达式(Conditional Expressions):使用if、elif、else语句来根据条件执行不同的代码块。
-
循环语句(Loop Statements):使用for和while语句来重复执行代码块。
-
跳转语句(Jump Statements):使用break、continue语句来控制循环的执行流程。
-
pass空语句:在语法上需要语句的地方,但程序不执行任何操作。
顺序结构流程图:
选择结构流程图:
循环结构流程图:
二、选择语句
Python中的选择语句主要用于基于条件表达式的值来控制程序的执行流程。选择语句允许程序根据不同的条件执行不同的代码块。Python中有两种主要的选择语句:if
语句和if...elif...else
语句。
1. 最简单的 if
语句
if 语句流程图:
if
语句用于检查单个条件。如果条件为真(True),则执行 if
块内的代码。
x = 10
if x > 5:
print("x 大于 5")
实例训练06 -判断神雕英雄传里黄蓉所说的数
print("今有物不知其数,三三数之剩二,五五数之剩三、七七数之剩二,问几何? \n")
number = int(input("请输入您认为符合条件的数: ")) #输入一个数
if number%3 == 2 and number%5 == 3 and number%7 == 2: #判断是否符合条件
print(number,"符合条件:三三数之剩二,五五数之剩三、七七数之剩二")
2. if...else
语句
if...else 语句流程图:
if...else
语句用于检查单个条件。如果条件为真,则执行 if
块内的代码;如果条件为假,则执行 else
块内的代码。
x = 3
if x > 5:
print("x 大于 5")
else:
print("x 小于或等于 5")
实例训练07 -验证瑛姑给的答案是否正确
print("今有物不知其数,三三数之剩二,五五数之剩三、七七数之剩二,问几何? \n")
number = int(input("请输入您认为符合条件的数: ")) #输入一个数
if number%3 == 2 and number%5 == 3 and number%7 == 2: #判断是否符合条件
print(number,"符合条件")
else:
print(number," 不符合条件")
3. if...elif...else
语句
if...elif...else 语句流程图:
if...elif...else
语句用于检查多个条件。它允许你根据多个条件执行不同的代码块。如果第一个 if
条件为真,则执行相应的代码块,并跳过所有后续的 elif
和 else
块。如果第一个 if
条件为假,程序将继续检查 elif
条件,以此类推。如果所有的 if
和 elif
条件都为假,那么最后的 else
块(如果有的话)将被执行。
x = 4
if x > 5:
print("x 大于 5")
elif x == 5:
print("x 等于 5")
elif x < 5:
print("x 小于 5")
else:
print("没有匹配的条件")
实例训练08 -输出玫瑰花语
print("在古希腊神话中,玫瑰集爱情与美丽于一身,所以人们常用玫瑰来表达爱情。")
print("但是不同朵数的玫瑰花代表的含义是不同的。\n")
#获取用户输入的朵数,并转换为整型
number = int(input("输入您想送几朵玫瑰花,小艺会告诉您含义: "))
if number == 1: #判断输入的数是否为1,代表1朵
print("1朵: 你是我的唯一! ") #如果等于1则输出提示信息
elif number == 3: #判断是否为3朵
print("3朵: I Love You! ")
elif number == 10: #判断是否为10朵
print("10朵: 十全十美! ")
elif number == 99: #判断是否为99朵
print("99朵: 天长地久! ")
elif number == 108: # 判断是否为108朵
print("108朵: 求婚! ")
else:
print("小艺也不知道了!可以考虑送1朵、3朵、10朵、99朵或108朵呦! ")
4. if语句的嵌套
在Python中,if语句的嵌套是指在一个if、elif或else语句块内部再次使用if、elif或else语句。这种结构允许你根据多个条件层级来控制程序的执行流程。嵌套if语句通常用于处理更复杂的决策逻辑,其中每个条件都依赖于前一个条件的结果。
基本语法
嵌套if语句的基本语法如下:
if 条件1:
if 条件2:
# 当条件1和条件2都为真时执行
elif 条件3:
# 当条件1为真且条件2不为真,但条件3为真时执行
else:
# 当条件1为真但条件2和条件3都不为真时执行
elif 条件4:
# 当条件1不为真但条件4为真时执行
else:
# 当所有条件都不为真时执行
示例
假设我们有一个学生的成绩系统,我们需要根据学生的成绩来决定他们的等级。成绩分为四个等级:优秀(A)、良好(B)、及格(C)和不及格(F)。我们可以使用嵌套if语句来实现这个逻辑:
score = 85 # 假设这是学生的成绩
if score >= 70: # 首先检查成绩是否及格
if score >= 90: # 如果及格,进一步检查是否优秀
grade = 'A'
else:
grade = 'B' # 如果成绩在70到89之间,等级为良好
else:
if score >= 60: # 如果成绩不及格,检查是否在60分以上
grade = 'C'
else:
grade = 'F' # 如果成绩低于60分,等级为不及格
print(f"学生的成绩等级是:{grade}")
在这个例子中,我们首先检查学生的成绩是否及格(大于等于70分)。如果及格,我们进一步检查是否达到优秀(大于等于90分)。如果成绩在70到89之间,等级为良好(B)。如果成绩不及格(小于70分),我们再检查是否在60分以上,如果是,等级为及格(C),否则等级为不及格(F)。
注意事项
- 嵌套if语句可以无限嵌套,但过多的嵌套会使代码难以阅读和维护。
- 通常建议使用逻辑运算符(如
and
、or
)来简化嵌套if语句,以提高代码的可读性。 - 在设计嵌套if语句时,考虑使用早返回(early return)策略,即在满足某个条件后立即返回结果,避免深层嵌套。
实例训练09 -判断是否酒后驾车
print("\n为了您和他人的安全,严禁酒后开车! \n")
proof = int(input("请输入每100毫升血液的酒精含量: ")) #获取用户输入的酒精含量,并转换为整型
if proof <20: #酒精含量小于20毫克,不构成饮酒行为
print("\n您还不构成饮酒行为,可以开车,但要注意安全!")
else: #酒精含量大于或等于20毫克,已经构成饮酒驾车行为
if proof <80: #酒精含量小于80毫克,达到饮酒驾驶标准
print("\n已经达到酒后驾驶标,,请不要开车! ")
else: #酒精含量大于或等于80毫克,已经达到醉酒驾驶标准
print("\n已经达到醉酒驾驶标准,千万不要开车! ")
5. 条件表达式
Python 也支持条件表达式,这是一种更简洁的方式来表达 if...else
逻辑。条件表达式通常用于赋值语句中。
原if语句:
a = 10
b = 5
if a>b:
r = a
else:
r = b
用条件表达式进行简化后:
a = 10
b = 5
r = a if a >b else b
使用条件表达式时,先计算中间的条件(a>b),如果结果为真(True),返回if语句左边的值,否则返回else右边的值。所以以上输出结果r为10。
注意事项
- 条件表达式中的条件必须能够被评估为布尔值(True 或 False)。
- 在
if...elif...else
语句中,一旦某个条件为真,后续的条件将不会被评估。 else
和elif
块是可选的,但if
块是必需的。
选择语句是编程中实现逻辑决策的基础,它们使得程序能够根据不同的输入或状态做出相应的反应。