Python3 条件控制代码实例
·
条件控制基础
Python 中的条件控制通过 if、elif 和 else 语句实现,依靠缩进来定义代码块。条件表达式返回布尔值 True 或 False:
age = 18
if age >= 18:
print("成年人") # 条件为真时执行
else:
print("未成年人") # 条件为假时执行
比较运算符
条件判断中常用的比较运算符包括:
a, b = 10, 20
print(a == b) # 等于: False
print(a != b) # 不等于: True
print(a > b) # 大于: False
print(a < b) # 小于: True
print(a >= 10) # 大于等于: True
print(b <= 15) # 小于等于: False
多分支判断
使用 elif 处理多个互斥条件,实现多路分支:
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B" # 满足此条件,执行后跳过后续分支
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print(f"成绩等级: {grade}") # 输出: 成绩等级: B
逻辑运算符
使用 and、or、not 组合多个条件:
username = "admin"
password = "123456"
# 同时满足多个条件
if username == "admin" and password == "123456":
print("登录成功")
else:
print("用户名或密码错误")
# 满足任一条件即可
day = "周六"
if day == "周六" or day == "周日":
print("休息日")
# 取反
is_raining = False
if not is_raining:
print("可以出门")
嵌套条件
条件语句内部可以嵌套另一个条件语句:
has_ticket = True
knife_length = 8 # 厘米
if has_ticket:
print("已购票,进入安检")
if knife_length > 0:
if knife_length <= 6:
print("刀具符合规定,允许携带")
else:
print("刀具过长,禁止携带")
else:
print("未携带刀具,直接通行")
else:
print("请先购票")
三元表达式
Python 支持简洁的条件表达式,适合简单的二选一赋值:
age = 20
# 传统写法
if age >= 18:
status = "成年"
else:
status = "未成年"
# 三元表达式(更简洁)
status = "成年" if age >= 18 else "未成年"
print(status) # 输出: 成年
# 三元表达式用于函数返回值
def max_num(a, b):
return a if a > b else b
print(max_num(10, 20)) # 输出: 20
成员判断
使用 in 和 not in 判断元素是否存在于序列中:
fruits = ["apple", "banana", "cherry"]
# 判断元素是否在列表中
if "apple" in fruits:
print("有苹果")
# 判断元素是否不在列表中
if "orange" not in fruits:
print("没有橙子")
# 判断子串是否在字符串中
text = "Hello, Python!"
if "Python" in text:
print("包含 Python")
空值判断
Python 中 None、空字符串、空列表、空字典等会被视为假值:
name = ""
items = []
data = None
# 直接判断真假(推荐)
if name:
print(f"名字是: {name}")
else:
print("名字为空") # 空字符串为假
if items:
print("列表不为空")
else:
print("列表为空") # 空列表为假
# 显式判断 None
if data is None:
print("数据未初始化")
# 判断非 None
if data is not None:
print("数据已存在")
match-case 模式匹配(Python 3.10+)
Python 3.10 引入了 match-case 语句,实现更清晰的模式匹配:
def http_status(status):
match status:
case 200:
return "OK"
case 404:
return "Not Found"
case 500:
return "Internal Server Error"
case _:
return "Unknown status"
print(http_status(404)) # 输出: Not Found
# 匹配数据结构
point = (3, 4)
match point:
case (0, 0):
print("原点")
case (x, 0):
print(f"x 轴上的点,x={x}")
case (0, y):
print(f"y 轴上的点,y={y}")
case (x, y):
print(f"普通点 ({x}, {y})")
短路求值技巧
利用逻辑运算符的短路特性简化条件判断:
user = None
name = user and user.name # user 为 None 时直接返回 None,不会访问 user.name
# 提供默认值
config = {}
timeout = config.get("timeout") or 30 # 若值为假值,使用默认值 30
# 安全获取属性(Python 3.8+)
# value = user?.profile?.email # 其他语言的空安全语法
value = user and user.profile and user.profile.email # Python 等效写法
性能注意事项
条件控制在 Python 中需要特别注意代码风格和可读性:
-
避免深层嵌套,优先使用提前返回(Guard Clause)
-
复杂条件提取为布尔变量或函数,提高可读性
-
频繁调用的条件判断考虑使用字典映射替代多分支
-
注意
is和==的区别:is判断身份(内存地址),==判断值相等
以上代码示例涵盖了 Python3 条件控制的主要概念和操作,从基础用法到高级技巧,为开发者提供了全面的参考。
更多推荐

所有评论(0)