Python 条件语句

Python if … else 条件语句用来控制程序在满足某个条件的情况下执行,条件语句是我们实现业务逻辑的重要工具。

Python if … else 条件语句用来控制程序在满足某个条件的情况下执行,条件语句是我们实现业务逻辑的重要工具。

条件语句涉及三个关键字: if, elif, else,其中 if 语句时必须的, elifelse 不是必须的, 它们都必须和 if 语句组合使用。

Python if 语句

if 语句语法

if 条件:
  代码块

说明:

  • 只有条件返回 True 的时候, 才会执行 if 代码块的代码。
  • if 的条件和代码块通过缩进定义,要注意缩进要一致

条件一般是逻辑判断语句,比如数学中常见的逻辑条件:

  • 等于:a == b
  • 不等于:a != b
  • 小于:a < b
  • 小于或等于:a <= b
  • 大于:a > b
  • 大于或等于:a >= b

示例

a = 33
b = 200
if b > a:
  print("b is greater than a")

在这个例子中,我们使用两个变量 ab,它们用作 if 语句的一部分来测试 b 是否大于 a。由于 a33,而 b200,我们知道 200 大于 33,输出结果是:

b is greater than a

缩进

与其他编程语言通常使用大括号定义代码块不同,Python 依靠缩进(空格或者制表符)来定义代码块。

如果 if 语句没有缩进就会引发错误。

a = 33
b = 200
if b > a:
print("b is greater than a") # IndentationError: expected an indented block

Python elif 语句

elif 语句表达的意思是:如果前面的 if 语句的条件是不正确的,那就试试这个条件。 elif 语句必须和 if 语句结合使用。

a = 33
b = 33
if b > a:
  print("b is greater than a")
elif a == b:
  print("a and b are equal")

在这个例子中 a 等于 b,所以 if 的条件不成立,但 elif 条件成立,所以输出为:

a and b are equal

Python else 语句

else 语句表达的意思是,如果前面的 ifelif 语句的条件都不成立,就执行 else 代码块。elif 语句必须和 if 语句结合使用。

a = 200
b = 33
if b > a:
  print("b is greater than a")
elif a == b:
  print("a and b are equal")
else:
  print("a is greater than b")

在这个例子中 a 大于 b,所以第一个条件不成立,elif 条件也不成立,所以最终执行的是 else 语句的代码块,输出内容是:

a is greater than b

if...else 语句:

a = 200
b = 33
if b > a:
  print("b is greater than a")
else:
  print("b is not greater than a")

简写 if

如果只有一个语句要执行,则可以将它与 if 语句放在同一行。

if a > b: print("a is greater than b")

条件表达式

Python 中的条件表达式或者称为三元运算符,不像其他语言中的 条件 ? x : y 的这种用法,而是采用 x if 条件 else y 这样的语法,意思是:当条件为真,返回 x 否则返回 y

a = 2
b = 330
print("A") if a > b else print("B")

逻辑与 and

and 关键字是一个逻辑运算符(逻辑与),只有当两个操作数都为 True 的时候,才返回 True

a 大于 b,并且 c 大于 a 时输出:

a = 200
b = 33
c = 500
if a > b and c > a:
  print("Both conditions are True")

输出:

Both conditions are True

逻辑或 or

or 关键字是一个逻辑运算符(逻辑或),只有当两个操作数都为 False 的时候,才返回 False

a 大于 b,或 a 大于 c 时输出:

a = 200
b = 33
c = 500
if a > b or a > c:
  print("At least one of the conditions is True")

if 语句嵌套

有时候为了实现更复杂的逻辑,if 语句可以嵌套另一个 if 语句。

x = 41

if x > 10:
  print("Above ten,")
  if x > 20:
    print("and also above 20!")
  else:
    print("but not above 20.")

输出:

Above ten,
and also above 20!

pass 语句

if 语句不能为空,但如果您出于某种原因有一个没有内容的 if 语句,请放入 pass 语句以避免出错。

a = 33
b = 200

if b > a:
  pass