Python--条件结构
Python--条件结构
- Python条件结构的基本语法
- 单条件判断
- 多条件分支
- 嵌套条件结构
- 条件表达式
- 逻辑运算符组合
- 特殊值判断
- 空值检查的简化写法
- 多条件链式比较
- 字典代替复杂分支
Python条件结构的基本语法
Python中使用if
、elif
和else
关键字实现条件结构。语法要求严格依赖缩进(通常为4个空格),结构如下:
if 条件1:执行语句1
elif 条件2: # 可选执行语句2
else: # 可选执行语句3
单条件判断
最简单的形式是仅使用if
。当条件为True
时执行代码块:
x = 10
if x > 5:print("x大于5") # 当x > 5的结果为True时执行
多条件分支
通过elif
添加更多判断分支,else
处理所有未满足的情况:
score = 85
if score >= 90:print("优秀")
elif score >= 80:print("良好")
else:print("需努力")
嵌套条件结构
条件语句可以多层嵌套,每层需保持缩进一致:
num = 15
if num > 0:if num % 2 == 0:print("正偶数")else:print("正奇数")
else:print("非正数")
条件表达式
Python支持单行条件表达式(三元运算符),格式为值1 if 条件 else 值2
:
age = 20
status = "成年" if age >= 18 else "未成年"
逻辑运算符组合
使用and
、or
、not
组合多个条件:
temperature = 25
humidity = 70
if temperature > 30 and humidity > 80:print("高温高湿")
elif not (temperature > 0):print("零下温度")
特殊值判断
利用成员运算符in
和身份运算符is
进行判断:
colors = ["red", "green", "blue"]
if "green" in colors:print("绿色存在")a = None
if a is None:print("变量为空")
空值检查的简化写法
直接使用变量作为条件时,空列表、空字符串等会被视为False
:
name = ""
if not name:print("姓名为空")
多条件链式比较
Python允许数学风格的链式比较:
size = 15
if 10 <= size < 20:print("中等尺寸")
字典代替复杂分支
在Python编程中,当遇到多分支场景(如根据不同的输入值执行不同的操作)时,使用多层if-elif-else语句虽然可行,但代码可能变得冗长且不易维护。一种更简洁、高效的方法是使用字典映射(dictionary mapping)。字典将键值对(key-value pairs)存储起来,通过键直接查找值,避免了复杂的条件链。下面通过一个例子逐步说明。
示例场景
假设我们有一个函数,输入一个字符串表示动物名称(如"dog"、“cat”、“bird”),输出该动物的叫声(如"汪汪"、“喵喵”、“叽叽”)。如果输入不在预设范围内,则返回默认提示。
传统方法:使用多层if-elif-else
这种方法需要为每个分支编写单独的elif语句,当分支增多时,代码会变得冗长。
def get_animal_sound(animal):if animal == "dog":return "汪汪"elif animal == "cat":return "喵喵"elif animal == "bird":return "叽叽"elif animal == "cow":return "哞哞"else:return "未知动物的叫声"
缺点: 每增加一个新动物,就需要添加一个新的elif分支,代码可读性下降,且容易出错。
改进方法: 使用字典映射
我们可以创建一个字典,将动物名称映射到叫声。然后使用字典的get方法来处理查找,并指定默认值。这样代码更简洁、易扩展。
def get_animal_sound(animal):sound_map = {"dog": "汪汪","cat": "喵喵","bird": "叽叽","cow": "哞哞"}return sound_map.get(animal, "未知动物的叫声")
测试
测试上述字典映射函数:
print(get_animal_sound("dog")) # 输出: 汪汪
print(get_animal_sound("bird")) # 输出: 叽叽
print(get_animal_sound("lion")) # 输出: 未知动物的叫声
适用场景
- 当分支数量较多时(如超过5个),字典映射的优势更明显。
- 适用于基于固定键值(如字符串、数字)的分支处理,但不适用于复杂条件(如涉及比较运算或范围判断)。
- 通过这个例子,您可以看到字典映射如何简化多分支逻辑,使代码更清晰、可扩展。在实际项目中,这能提高开发效率和代码质量。