Python if..else 语句

决策是计算机编程的最基本概念之一。 Python 中的决策操作和其他语言中的常见流程控制语句大致相同,并进行了一些修改。 if 控制语句是使用基于特定条件来执行代码的最基本和最知名的语句之一。

在本文中,我们将介绍 Python 中的 if 语句的基础用法。

if 语句

Python  中的 if 语句的最基本形式如下:

if EXPRESSION:
  STATEMENT

if 语句以 if 关键字开头,后跟条件表达式。

EXPRESSION 后面必须跟 (:) 结尾。如果 EXPRESSION 计算结果为 True ,则执行 STATEMENT 。如果 EXPRESSION 计算结果为 False ,则忽略 STATEMENT,什么也不执行。 STATEMENT 可以是任何语句,包括多个语句或其他嵌套 if 语句。如果想要不执行任何语句,请使用 pass 语句。

STATEMENT 块以缩进开始,以第一条未缩进的行结束。大多数人选择使用4空格或者2空格缩进。官方的 Python 代码样式指南建议每个缩进级别使用4个空格,并避免混合使用制表符和空格进行缩进。

让我们看下面的示例脚本,该脚本检查给定数字是否大于5。

number = int(input('Enter a number: '))

if number > 5:
    print(number, 'is greater than 5.')

将代码保存在文件中,然后从命令行运行它:

python test.py

该脚本将提示您输入一个数字。例如,如果输入 10 ,则条件表达式的计算结果为 True (10 大于 5) ,并且 print 函数将被执行。

10 is greater than 5.

Python 支持标准比较操作:

  • a == b - 如果 ab 相等,则为 true 。
  • a != b - 如果 ab 不相等,则为 true 。
  • a > b - 如果 a 大于 b ,则为 true 。
  • a >= b - 如果 a 等于或大于 b ,则为 true 。
  • a < b - 如果 a 小于 b ,则为 true 。
  • a <= b - 如果 a 等于或小于 b ,则为 true 。

您还可以使用 in 关键字来检查可迭代值(字符串,列表,元组,字典等)中是否存在某个值:

s = 'linuxize'
if 'ze' in s:
    print('True.')

这是使用字典的另一个示例:

d = {'a': 2, 'b': 4}
if 'a' in d:
    print('True.')

当在字典上使用时, in 关键字检查字典是否具有特定的键。

要对条件表达式取反,请使用逻辑 not 运算符:

number = int(input('Enter a number: '))

if not number < 5:
    print(number, 'is greater than 5.')

if..else 语句

一条 if..else 语句计算条件并根据结果执行两个语句之一。

Python 中的 if..else 语句采用以下形式:

if EXPRESSION:
    STATEMENT1
else:
    STATEMENT2

如果 EXPRESSION 计算为 True ,将执行 STATEMENT1 。否则,如果 EXPRESSION 返回 False ,将执行 STATEMENT2

else 关键字必须以 : 结束,并与 if 关键字在同一缩进级别。

让我们在前面的示例脚本中添加一个 else 子句:

number = int(input('Enter a number: '))

if number > 5:
    print(number, 'is greater than 5.')
else:
    print(number, 'is equal or less than 5.')

如果运行代码并输入数字,则脚本将根据数字是大于还是小于等于 5 来打印不同的消息。

if..elif..else 声明

elif 关键字是 else if 的缩写。

Python 中的 if..elif..else 语句采用以下形式:

if EXPRESSION1:
    STATEMENT1
elif: EXPRESSION2:
    STATEMENT2
else:
    STATEMENT3

如果 EXPRESSION1 计算为 True ,将执行 STATEMENTS1 。如果 EXPRESSION2 计算结果为 True ,将执行 STATEMENTS2 。如果所有表达式都不为 True ,则执行 STATEMENTS3

elif 关键字必须以 : 结尾,并与 if 关键字在同一缩进级别。 elif 语句中可以有一个或多个子句。 else 子句是可选的。如果未使用 else 子句,并且所有表达式的求值为 False ,则不会执行任何语句。

条件被顺序判断。一旦有条件返回后 True ,将不执行其余条件,并且程序控制移至 if 语句的末尾。

让我们在前面的脚本中添加一个 elif 子句:

number = int(input('Enter a number: '))

if number > 5:
    print(number, 'is greater than 5.')
elif number < 5:
    print(number, 'is less than 5.')
else:
    print(number, 'is equal to 5.')

与大多数编程语言不同, Python 没有 switch 或者 case 语句。多个 elif 语句的序列可以代替 switch 或者 case

嵌套 if 语句

Python 允许您在 if 语句内嵌套 if 语句。通常,您应始终避免过度缩进,并尝试使用 elif 而不是嵌套 if 语句

以下脚本将提示您输入三个数字,并在数字中显示最大的数字。

number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))

if number1 > number2:
    if number1 > number3:
        print(number1, 'is the largest number.')
    else:
        print(number3, 'is the largest number.')
else:
    if number2 > number3:
        print(number2, 'is the largest number.')
    else:
        print(number3, 'is the largest number.')

输出结果如下所示:

Enter the first number: 455 
Enter the second number: 567
Enter the third number: 354
567 is the largest number.

多种条件

orand 逻辑运算符使您可以在 if 语句中组合多个条件。

这是可打印三个数字中最大的数字脚本的另一个版本。在此版本中, if 我们使用逻辑 and 运算符和来代替嵌套语句 elif

number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))

if number1 > number2 and number1 > number3:
    print(number1, 'is the largest number.')
elif number2 > number3 and number2 > number3:
    print(number2, 'is the largest number.')
else:
    print(number3, 'is the largest number.')

结论

ifif..elseif..elif..else 语句,可以通过评估给定的条件来控制 Python 的执行流程。