当前位置:首页>python>Python if-else语句——二选一的条件判断

Python if-else语句——二选一的条件判断

  • 2026-10-01 06:59:31
Python if-else语句——二选一的条件判断

一、什么是if-else语句?

if-else 是Python中用于二选一的条件判断语句。当条件成立时,执行一段代码;当条件不成立时,执行另一段代码。就像生活中的“如果……否则……”。

age = 16
if age >= 18:
print("你可以进入")
else:
print("你不能进入")

二、if-else的基本语法

if 条件:
    条件为真时执行的代码块
else:
    条件为假时执行的代码块

语法要点:

  • • if 和 else 是关键字
  • • if 后面跟条件,条件后面必须加冒号 :
  • • else 后面直接加冒号 :,不需要条件
  • • 两个代码块都必须缩进(通常4个空格)
  • • if 和 else 对齐

三、if-else的执行流程

  1. 1. 判断 if 后面的条件是否为真
  2. 2. 如果为真,执行 if 下面缩进的代码块,然后跳过 else 部分
  3. 3. 如果为假,跳过 if 代码块,执行 else 下面缩进的代码块

可以用下图表示:

       ┌─────┐
       │ 条件 │
       └──┬──┘
          │
    真 ┌──┴──┐ 假
       ▼      ▼
   if代码块  else代码块
       │      │
       └──┬──┘
          ▼
      后续代码

四、简单示例

示例1:判断奇偶

num = 7
if num % 2 == 0:
print("偶数")
else:
print("奇数")  # 输出:奇数

示例2:判断是否成年

age = int(input("请输入年龄:"))
if age >= 18:
print("成年人")
else:
print("未成年人")

示例3:判断字符串是否为空

name = input("请输入名字:")
if name:
print(f"你好,{name}")
else:
print("你没有输入名字")

五、if-else 与 多个if 的区别

初学者容易混淆 if-else 和 两个独立的 if。

# 使用两个独立的if
x = 5
if x > 0:
print("正数")
if x <= 0:
print("非正数")
# 两个条件都会判断,但这里互斥,结果正确

# 使用if-else更清晰
if x > 0:
print("正数")
else:
print("非正数")

区别:

  • • if-else 是互斥的,最多执行一个分支。
  • • 两个独立的 if 可能都执行(如果条件重叠)或都不执行。

在二选一的情况下,if-else 更合适,逻辑更清晰。


六、if-else 与 if-elif-else 的区别

  • • if-else:只有两个分支,条件为真走if,否则走else。
  • • if-elif-else:多个分支,依次判断,只要有一个为真就执行对应分支并结束。

何时用if-else: 只需要区分“成立”和“不成立”两种情况时。


七、嵌套if-else

if-else 内部可以再包含 if-else,形成嵌套结构。

age = 20
has_id = True

if age >= 18:
print("年龄符合")
if has_id:
print("可以进入")
else:
print("请出示身份证")
else:
print("未成年人禁止进入")

注意: 嵌套层数不宜过多,否则影响可读性。有时可以用逻辑运算符简化。

# 用 and 简化上面的嵌套
if age >= 18and has_id:
print("可以进入")
elif age >= 18andnot has_id:
print("请出示身份证")
else:
print("未成年人禁止进入")

八、条件表达式(三元运算符)—— if-else 的简洁写法

Python 提供了一种单行的 if-else 写法,称为条件表达式或三元运算符。

变量 = 值1if 条件 else 值2

当条件为真时,取 值1;为假时,取 值2。

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

# 等价于:
if age >= 18:
    status = "成年"
else:
    status = "未成年"

注意: 三元运算符适用于简单的二选一赋值,复杂的逻辑还是用完整的 if-else 更清晰。


九、常见错误与注意事项

9.1 忘记冒号 :

if score > 60# ❌ 缺少冒号
print("及格")

9.2 缩进错误

if score > 60:
print("及格")
print("考试结束")  # ❌ 缩进不一致,可能报错或逻辑错误

9.3 else 后面不能跟条件

if score > 60:
print("及格")
else score <= 60:   # ❌ else后面不能有条件
print("不及格")

9.4 混淆 = 和 ==

if x = 5:   # ❌ 赋值语句,会报错
print("x等于5")

9.5 空值判断

data = []
if data:   # 空列表为False
print("处理数据")
else:
print("数据为空")

9.6 else 悬垂问题

在嵌套if中,else 总是与最近的 if 配对,除非用缩进明确。

if a > 0:
if b > 0:
print("a和b都为正")
else:
print("a不大于0")  # 这个else与第一个if配对

如果想与第二个if配对,需要调整缩进或使用花括号(但Python没有花括号,所以必须用缩进):

if a > 0:
if b > 0:
print("a和b都为正")
else:
print("a为正,但b不大于0")  # 与第二个if配对
else:
print("a不大于0")

十、实战案例

案例1:判断闰年

year = int(input("请输入年份:"))
if (year % 4 == 0and year % 100 != 0) or (year % 400 == 0):
print(f"{year}年是闰年")
else:
print(f"{year}年不是闰年")

案例2:简单的登录验证

username = input("用户名:")
password = input("密码:")

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

案例3:奇偶判断 + 正负判断

num = int(input("请输入一个整数:"))
if num > 0:
if num % 2 == 0:
print("正偶数")
else:
print("正奇数")
elif num < 0:
if num % 2 == 0:
print("负偶数")
else:
print("负奇数")
else:
print("零")

案例4:根据分数输出等级(用if-else链,但更推荐if-elif)

score = int(input("请输入分数:"))
if score >= 90:
    grade = 'A'
else:
if score >= 80:
        grade = 'B'
else:
if score >= 70:
            grade = 'C'
else:
if score >= 60:
                grade = 'D'
else:
                grade = 'F'
print(f"等级:{grade}")

这种方式虽然可行,但嵌套太深,可读性差。实际中应该用 if-elif-else。

案例5:找零计算器

total = float(input("总价:"))
paid = float(input("付款:"))

if paid >= total:
    change = paid - total
print(f"找零:{change:.2f}元")
else:
    shortage = total - paid
print(f"金额不足,还差 {shortage:.2f}元")

案例6:判断三角形(简化版,只判断等边或不等边)

a = float(input("边长a:"))
b = float(input("边长b:"))
c = float(input("边长c:"))

if a == b == c:
print("等边三角形")
else:
print("不是等边三角形")

十一、if-else 与 布尔值

在Python中,任何值都可以被解释为布尔值。if-else 的条件部分会隐式调用 bool() 转换。

# 以下值会被当作False:None、False、0、0.0、""、[]、()、{}、set()
# 其他值都是True

items = []
if items:
print("有元素")
else:
print("空列表")  # 输出

利用这一特性可以写出简洁的代码。


十二、总结

  • • if-else 用于处理二选一的逻辑。
  • • 语法清晰:if 条件: ... else: ...
  • • 注意冒号、缩进、不要滥用嵌套。
  • • 可以用条件表达式(三元运算符)简化简单的二选一赋值。
  • • 多个分支时考虑 if-elif-else 而不是多层嵌套。

练习建议:

  1. 1. 编写一个程序,判断一个数是正数、负数还是零(可以用if-elif-else)。
  2. 2. 编写一个程序,判断一个年份是否是闰年,输出结果。
  3. 3. 编写一个程序,根据用户输入的身高体重计算BMI,并判断是否正常(可以用if-else)。

掌握 if-else 是学习编程逻辑控制的第一步,多写多练,很快就能熟练运用。

最新文章

随机文章