李成笔记网

专注域名、站长SEO知识分享与实战技巧

python入门到脱坑 结构语句— 条件语句 (if-elif-else)

以下是Python中条件语句(if-elif-else)的详细讲解,包含基础语法、实用技巧和典型应用场景:


一、基础语法结构

if 条件1:
    # 条件1为True时执行
elif 条件2:
    # 条件1为False且条件2为True时执行
else:
    # 所有条件都为False时执行

执行流程:


二、核心组成部分

1. 条件表达式

  • 比较运算符:==, !=, >, <, >=, <=
  • 逻辑运算符:and, or, not
  • 成员检测:in, not in

2. 代码块

  • 通过缩进(通常4个空格)表示代码块范围
  • 冒号:标志着条件语句的开始

三、典型示例

1. 基础判断

age = 18
if age >= 18:
    print("已成年")
else:
    print("未成年")

2. 多条件分支

score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")  # 本例会执行这里
elif score >= 60:
    print("及格")
else:
    print("不及格")

3. 复合条件

username = "admin"
password = "123456"
if username == "admin" and password == "123456":
    print("登录成功")
else:
    print("用户名或密码错误")

四、特殊用法技巧

1. 单行if语句

x = 10
if x > 5: print("x大于5")  # 简单语句可写在一行

2. 三元表达式

age = 20
status = "成年" if age >= 18 else "未成年"
print(status)  # 输出"成年"

3. 空值检查惯用法


name = input("请输入姓名: ") or "匿名用户"
# 如果输入为空,则name为"匿名用户"

五、常见应用场景

1. 用户输入验证

user_input = input("请输入数字: ")
if user_input.isdigit():
    num = int(user_input)
    print(f"平方值为: {num**2}")
else:
    print("输入无效,必须为数字!")

2. 文件扩展名判断

filename = "report.pdf"
if filename.endswith(".pdf"):
    print("PDF文件")
elif filename.endswith((".jpg", ".png")):
    print("图片文件")
else:
    print("未知格式")

3. 权限检查

is_admin = True
is_logged_in = False

if is_logged_in:
    if is_admin:
        print("显示管理员面板")
    else:
        print("显示用户面板")
else:
    print("请先登录")

六、注意事项

  1. 缩进必须一致
# 错误示例
if True:
print("hello")  # IndentationError

elif和else可选

# 只有if
if condition:
    do_something()

# if-else结构
if condition:
    do_this()
else:
    do_that()


浮点数比较需谨慎

# 避免直接比较浮点数
if abs(a - b) < 1e-9:  # 判断是否近似相等
    print("a约等于b")

条件表达式求值顺序

if x > 0 and y/x > 2:  # 当x=0时不会报错,因为and会短路
    print("条件成立")

七、调试技巧

  1. 使用print()检查条件结果:
print(f"条件结果: {x > y}")  # 查看条件是否按预期求值
  1. 验证所有分支:
def test_grade(score):
    if score >= 90:
        return "A"
    elif score >= 80:
        return "B"
    else:
        return "C"

# 测试用例应覆盖所有分支
assert test_grade(95) == "A"
assert test_grade(85) == "B"
assert test_grade(70) == "C"

八、进阶用法

1. 模式匹配(Python 3.10+)

status = 404
match status:
    case 200:
        print("成功")
    case 404:
        print("未找到")
    case _:
        print("未知状态码")

2. 字典代替复杂分支

def handle_http_status(code):
    actions = {
        200: lambda: print("OK"),
        404: lambda: print("Not Found"),
        500: lambda: print("Server Error")
    }
    actions.get(code, lambda: print("Unknown code"))()

掌握条件语句后,你可以实现程序的分支逻辑控制。接下来可以学习循环语句(while/for)来完善程序流程控制能力

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言