Skip to content

Python if else elif 语句

  • Python 的 if-elif-else 语句用于编写条件流程代码。
  • 语句的顺序是 if…elif…else。
  • “elif”是“else if”语句的缩写。缩写是为了减少过多的缩进。
  • else 和 elif 语句是可选的。
  • 可以有多个 elif 语句。
  • if 语句中只能有一个 else 代码块。
  • if、else 和 elif 是Python 中的保留关键字。
  • Python 没有像其他语言那样的 switch-case 语句。在 Python 脚本中,if-else 条件语句足以实现控制流程。
  • Python 中可以嵌套 if-else 语句块。
  • Python 的三元运算符允许我们用一行代码编写 if-else 语句。当 if-else 条件很简单,并且我们希望减少代码长度时,它非常有用。

Python if else 语法

Python 中 if-else 语句的一般语法是:

python
if condition:
    # code
elif condition:
    # code
... # multiple elif statements
else:
    # default code
  1. 每个if-elif语句后面都跟着一个条件。
  2. 如果条件判断为真,则执行该代码块中的代码。
  3. 一旦代码块中的任何代码执行完毕,控制流就会从 if-elif-else 代码块中移出。
  4. 如果所有条件都不为真,则执行 else 代码块。

Python if-elif-else 示例

假设我们有一个函数,它接受一个国家名称并返回其首都。我们可以使用 if-else 条件语句来实现这个逻辑。

python
def get_capital(country):
    if country == 'India':
        return 'New Delhi'
    elif country == 'France':
        return 'Paris'
    elif country == 'UK':
        return 'London'
    else:
        return None

Python If Else Elif 示例

前面我们提到过,elif 语句是可选的。让我们来看另一个没有 elif 语句的简单例子。

python
def is_positive(num):
    if num >= 0:
        return 'Positive'
    else:
        return 'Negative'

即使是 else 代码块也是可选的。我们来看另一个只有 if 条件的例子。

python
def process_string(s):
    if type(s) is not str:
        print('not string')
        return
    # code to process the input string

如果你想知道空的return 语句有什么作用,它会向调用者返回None 。

一行 Python if-else 语句

假设我们有一个简单的 if-else 条件语句,如下所示:

python
x = 10
 
if x > 0:
    is_positive = True
else:
    is_positive = False

我们可以使用 Python 三元运算符将整个 if-else 代码块移到一行中。

三元运算的语法是:

python
value_true if condition else value_false

让我们把上面的 if-else 语句块改写成一行。

python
is_positive = True if x > 0 else False

Python If Else 单行语句

嵌套的 if-else 条件

我们可以嵌套多个 if-else 条件语句。请注意缩进,否则结果可能出乎意料。

让我们来看一个包含多个 if-else-elif 条件并嵌套的长示例,以创建一个智能数字处理脚本。

python
# accepting user input
x = input('Please enter an integer:\n')
 
# convert str to int
x = int(x)
 
print(f'You entered {x}')
 
if x > 0:
    print("It's a positive number")
    if x % 2 == 0:
        print("It's also an even number")
        if x >= 10:
            print("The number has multiple digits")
    else:
        print("It's an odd number")
elif x == 0:
    print("Lovely choice, 0 is the master of all digits.")
else:
    print("It's a negative number")
    if x % 3 == 0:
        print("This number is divided by 3")
    if x % 2 == 0:
        print("And it's an even number")
    else:
        print("And it's an odd number")

以下是该代码多次迭代的示例输出。

shell
Please enter an integer:
10
You entered 10
It's a positive number
It's also an even number
The number has multiple digits
 
Please enter an integer:
0
You entered 0
Lovely choice, 0 is the master of all digits.
 
Please enter an integer:
-10
You entered -10
It's a negative number
And it's an even number

结论

Python 的 if-else 条件语句允许我们在程序中编写条件逻辑。它的语法简洁易用。我们可以使用三元运算符将简单的 if-else 条件语句简化为一行代码。当有多个嵌套的 if-else 条件语句时,请注意缩进。