if-else 条件语句
当 if 的条件为假时,如果还需要执行另一段代码,就用 else 分支。else 没有自己的条件,它捕获所有 if 未覆盖的情况。
基本语法
x = -5
if x > 0:
print "x is positive"
else:
print "x is not positive"
else 以冒号结尾,下一行缩进的代码块在 if 条件为假时执行。if 和 else 的缩进块必须对齐:
if x > 0:
print "positive"
print "greater than zero"
else:
print "not positive"
print "less than or equal to zero"
实际应用
if-else 常用于二选一的场景:
# 判断奇偶
n = 7
if n % 2 == 0:
print "Even"
else:
print "Odd"
# 判断登录状态
is_logged_in = False
if is_logged_in:
print "Welcome back!"
else:
print "Please log in."
# 找最大值(虽然 max() 更好,但用于演示)
a, b = 10, 20
if a > b:
max_val = a
else:
max_val = b
print max_val # 20
与真值判断结合
利用 Python 的真值规则,可以写出更简洁的条件:
name = ""
# 冗长写法
if name == "":
print "Name is empty"
else:
print "Hello,", name
# 简洁写法
if name:
print "Hello,", name
else:
print "Name is empty"
空字符串 "" 在布尔上下文中为假,非空字符串为真。这种写法更 Pythonic,但初学者可能觉得不够显式。选择哪种风格取决于团队约定和个人偏好。
嵌套 if-else
if-else 可以嵌套,但嵌套过深会降低可读性:
score = 75
if score >= 60:
if score >= 90:
print "A"
else:
print "B or C"
else:
print "F"
当需要处理多个互斥条件时,应该使用 elif(else if 的缩写),而不是嵌套 if-else。elif 将在下一节详细讲解。
常见错误
忘记冒号:
if x > 0 # SyntaxError: invalid syntax
print "positive"
else 后面加条件:
if x > 0:
print "positive"
else x == 0: # SyntaxError: invalid syntax
print "zero"
else 不能带条件。如果需要判断另一个条件,用 elif。
缩进错误:
if x > 0:
print "positive"
else:
print "not positive"
print "done" # IndentationError