当前位置:首页>python>python分支结构

python分支结构

  • 2026-10-11 07:52:33
python分支结构

程序最厉害的地方,不是能算多快,而是能根据不同情况做不同的事。

就像生活中,如果今天下雨,我就带伞;如果出太阳,我就戴帽子。这种“如果……就……”的逻辑,在Python里叫分支结构。


单分支结构

最简单的分支,就是if。满足条件就执行,不满足就跳过。

age = 18if age >= 18:    print("恭喜,你已经成年了!")

如果age是16,什么也不会打印。这就是单分支:要么做,要么不做,没有第二种选择。

注意:if后面一定要有冒号,下面的代码块要缩进(一般是4个空格)。忘了缩进,Python会报错。


二分支结构:if-else

有时候我们需要“二选一”:对了怎样,错了又怎样。这时候用if-else。

score = 59if score >= 60:    print("及格了,今晚加鸡腿!")else:    print("不及格,回去好好复习。")
二分支还有一种“紧凑形式”,适合简单的情况:
result = "及格" if score >= 60 else "不及格"print(result)

多分支结构:if-elif-else

现实中的选择往往不止两种。成绩分ABCD,星期分周一到周日,这时候要用if-elif-else。

score = 85if score >= 90:    grade = "A"elif score >= 80:    grade = "B"elif score >= 70:    grade = "C"elif score >= 60:    grade = "D"else:    grade = "E"print(f"你的等级是:{grade}")

重点:条件是从上往下检查的。一旦满足某个条件,就跳出整个结构,不再检查后面的。所以条件的顺序很重要。如果把>=80写在>=90前面,那90分也会被当成B,因为先满足了>=80。


条件判断

分支的条件可以是各种比较,比如:

操作符
含义
例子
<
小于
age < 18
<=
小于等于
score <= 100
>
大于
height > 170
>=
大于等于
temp >= 38.5
==
等于
name == "老李"
!=
不等于
answer != 42

小心:==(两个等号)是比较是否相等,=(一个等号)是赋值。写错的话,程序不会报错,但逻辑全乱了。

条件组合:and, or, not

有时候一个条件不够,要同时满足多个,或者满足其中之一。

age = 35has_work = True# 两个条件都得满足if age >= 18 and has_work:    print("可以申请贷款")# 满足其中一个就行if age < 18 or age > 60:    print("享受优惠票价")# 取反if not has_work:    print("待业中")

and(与)、or(或)、not(非),这三个保留字能把简单条件拼成复杂条件。


异常处理

你有没有遇到过用户乱输入的情况?比如程序让你输数字,他偏偏输“abc”。这时候程序会报错,直接崩溃。

# 用户输入“abc”num = eval(input("请输入一个整数: "))print(num ** 2)# 报错:NameError: name 'abc' is not defined
怎么解决?try-except。
try:    num = eval(input("请输入一个整数: "))    print(f"它的平方是:{num ** 2}")except:    print("输入不合法,请输入整数!")

如果用户输入“abc”,程序不会崩溃,而是友好地提示“输入不合法”。

还可以指定捕获特定类型的异常:

try:    num = int(input("请输入一个整数: "))  # 用int()更安全    print(f"平方是:{num ** 2}")except ValueError:    print("你输入的不是整数!")
异常处理的高级用法:else和finally
try:    num = int(input("请输入整数: "))except ValueError:    print("输入错误")else:    print(f"平方是{num**2}")   # 只有没发生异常时才执行finally:    print("程序结束")          # 无论是否异常都执行
finally特别适合用来关闭文件、释放资源等“善后”工作。

其他实用的知识点

1. 布尔值:True和False

分支条件的结果只有两种:真(True)或假(False)。Python里,很多值都可以当作布尔值来用:

# 以下值相当于Falsebool(0)      # Falsebool(0.0)    # Falsebool("")     # 空字符串 Falsebool([])     # 空列表 Falsebool(None)   # False# 其他值基本都是Truebool(1)      # Truebool("abc")  # True

所以可以这样写:

name = input("请输入名字:")if name:   # 相当于 if name != ""    print(f"你好,{name}")else:    print("名字不能为空")

2. pass语句:占位符

有时候还没想好分支里要写什么,但语法上不能空着。可以用pass占位:

if condition:    pass   # 以后再实现else:    print("执行其他操作")

3. 条件表达式(三元运算符)

前面提到的紧凑形式,其实就是“条件表达式”:

x = 10y = 20max_val = x if x > y else yprint(max_val)  # 20

4. elif 的本质

elif就是else if的缩写,可以写多个,没有数量限制,但注意可读性。


综合案例:智能BMI计算器

结合今天学的内容,写一个BMI计算器,能判断体重状况,还能处理用户输入错误。

print("========== 智能BMI计算器 ==========")try:    height = float(input("请输入身高(米):"))    weight = float(input("请输入体重(公斤):"))    if height <= 0 or weight <= 0:        print("身高和体重必须是正数!")    else:        bmi = weight / (height ** 2)        print(f"您的BMI指数是:{bmi:.2f}")        # 多分支判断        if bmi < 18.5:            category = "偏瘦"            advice = "多吃点,加强营养"        elif bmi < 24:            category = "正常"            advice = "保持,继续运动"        elif bmi < 28:            category = "偏胖"            advice = "注意饮食,适当锻炼"        else:            category = "肥胖"            advice = "建议咨询医生,控制体重"        print(f"体型:{category}")        print(f"建议:{advice}")except ValueError:    print("输入错误!请输入数字,比如身高1.75,体重68.5")except Exception as e:    print(f"未知错误:{e}")finally:    print("========== 感谢使用 ==========")

运行效果:

========== 智能BMI计算器 ==========请输入身高(米):1.75请输入体重(公斤):68您的BMI指数是:22.20体型:正常建议:保持,继续运动========== 感谢使用 ==========

如果用户输入负数或字母,程序会给出友好提示,不会崩溃。


📌 今日学习笔记:

学到了什么:

  • 单分支if:满足条件就执行

  • 二分支if-else:二选一,紧凑形式x if condition else y

  • 多分支if-elif-else:多选一,注意条件顺序

  • 条件判断:比较操作符(==、!=、>、<等)和逻辑操作符(and、or、not)

  • 异常处理:try-except捕获错误,else无异常时执行,finally无论如何都执行

  • 补充:布尔值真假、pass占位、三元运算符、elif本质

踩坑记录:

  • 把==写成=,条件永远为真,调试半天才发现

  • if后面忘了冒号,报语法错误

  • elif写成了else if(那是别的语言的写法)

  • except后面不指定异常类型,会捕获所有错误,有时掩盖了真正的问题

  • 用户输入int()时如果输入小数会报错,用float()更通用

用时:1小时


📢 我是老李,35岁规划师,从零开始学AI。

每天1小时,记录真实学习路。不求成为大神,只为多一条出路。

如果你也在传统行业或者对未来感到焦虑,如果你也想学点新东西但一直没有开始

点击关注,我们一起进步;

也欢迎点赞 ❤️ 分享 ➕ 推荐,让更多同行者看到!

👇👇👇

最新文章

随机文章