Python if...else 语句

在计算机编程中,if 语句是一个条件语句。它用于仅在满足特定条件时执行一段代码。例如,

假设我们需要根据学生的分数给他们分配不同的等级。

  1. 如果学生分数高于 90,分配等级 A
  2. 如果学生分数高于 75,分配等级 B
  3. 如果学生分数高于 65,分配等级 C

这些条件任务可以使用 if 语句来实现。


Python if 语句

if 语句仅在满足指定条件时才执行一段代码。

语法

if condition:
    # body of if statement

这里,condition 是一个布尔表达式,例如 number > 5,它会评估为 TrueFalse

  • 如果 condition 评估为 True,则执行 if 语句的主体。
  • 如果 condition 评估为 False,则 if 语句的主体将被跳过执行。

让我们看一个例子。

Working of if Statement
if 语句的工作原理

示例:Python if 语句

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

# check if number is greater than 0
if number > 0:
    print(f'{number} is a positive number.')

print('A statement outside the if statement.')

示例输出 1

Enter a number: 10
10 is a positive number.
A statement outside the if statement.

如果用户输入 10,条件 number > 0 评估为 True。因此,执行 if 的主体。

示例输出 2

Enter a number: -2
A statement outside the if statement.

如果用户输入 -2,条件 number > 0 评估为 False。因此,if 的主体被跳过执行。


Python 中的缩进

Python 使用缩进定义代码块,例如 if 语句的主体。例如,

x = 1
total = 0

# start of the if statement
if x != 0:
    total += x
    print(total)  
# end of the if statement

print("This is always executed.")

这里,if 的主体有两个语句。我们之所以知道这一点,是因为两个语句(紧随 if 之后)都以缩进开头。

我们通常在 Python 中使用四个空格进行缩进,尽管只要保持一致,任何数量的空格都可以。

如果你像这样编写上述代码,将会收到错误

# Error code
x = 1
total = 0
        
if x != 0:
total += x
print(total)

这里,我们在 if 语句之后没有使用缩进。在这种情况下,Python 会认为我们的 if 语句为空,这会导致错误。


Python if...else 语句

if 语句可以有一个可选的 else 子句。如果 if 语句中的条件评估为 False,则执行 else 语句。

语法

if condition:
    # body of if statement
else:
    # body of else statement

这里,如果 if 语句中的 condition 评估为

  • True - 执行 if 的主体,并跳过 else 的主体。
  • False - 执行 else 的主体,并跳过 if 的主体

让我们看一个例子。

Working of if…else Statement
if…else 语句的工作原理

示例:Python if…else 语句

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

if number > 0:
    print('Positive number')
else:
    print('Not a positive number')

print('This statement always executes')

示例输出 1

Enter a number: 10
Positive number
This statement always executes

如果用户输入 10,条件 number > 0 评估为 True。因此,执行 if 的主体,并跳过 else 的主体。

示例输出 2

Enter a number: 0
Not a positive number
This statement always executes

如果用户输入 0,条件 number > 0 评估为 False。因此,跳过 if 的主体,并执行 else 的主体。


Python if…elif…else 语句

if...else 语句用于在两个备选项中执行一段代码。

但是,如果我们需要在两个以上的备选项中做出选择,我们使用 if...elif...else 语句。

语法

if condition1:
    # code block 1

elif condition2:
    # code block 2

else: 
    # code block 3

让我们看一个例子。

Working of if…elif…else Statement
if…elif…else 语句的工作原理

示例:Python if…elif…else 语句

number = -5

if number > 0:
    print('Positive number')

elif number < 0:
    print('Negative number')

else:
    print('Zero')

print('This statement is always executed')

输出

Negative number
This statement is always executed

这里,第一个条件 number > 0 评估为 False。在这种情况下,会检查第二个条件。

第二个条件 number < 0 评估为 True。因此,执行 elif 块中的语句。

在上面的程序中,需要注意的是,无论变量 number 的值是什么,只会执行一个代码块。


Python 嵌套 if 语句

可以在另一个 if 语句中包含一个 if 语句。例如,

number = 5

# outer if statement
if number >= 0:
    # inner if statement
    if number == 0:
      print('Number is 0')
    
    # inner else statement
    else:
        print('Number is positive')

# outer else statement
else:
    print('Number is negative')

输出

Number is positive

这个程序的工作原理如下。

Working of Nested if Statement
嵌套 if 语句的工作原理

更多关于 Python if…else 语句

紧凑的 if 语句

在某些情况下,if 语句可以简化为一行。例如,

number = 10

if number > 0:
    print('Positive')

这段代码可以紧凑地写成

number = 10

if number > 0: print('Positive')

这种一行式方法保留了相同的功能,但格式更简洁。

Python if...else 中的三元运算符

Python 没有三元运算符。但是,我们可以使用 if...else 来像其他语言中的三元运算符一样工作。例如,

grade = 40

if grade >= 50:
    result = 'pass'
else:
    result = 'fail'

print(result)

可以写成

grade = 40

result = 'pass' if number >= 50 else 'fail'

print(result)
逻辑运算符以添加多个条件

如果需要,我们可以使用逻辑运算符(如 andor)来创建复杂的条件,以便与 if 语句一起使用。

age = 35
salary = 6000

# add two conditions using and operator if age >= 30 and salary >= 5000:
print('Eligible for the premium membership.') else: print('Not eligible for the premium membership')

输出

Eligible for the premium membership.

这里,我们使用了逻辑运算符 andif 语句中添加了两个条件。

我们还使用了 >=(比较运算符)来比较两个值。

逻辑运算符和比较运算符经常与 if...else 语句一起使用。访问 Python 运算符 了解更多。


在我们结束之前,让我们测试一下你对 Python if else 的知识!你能解决下面的挑战吗?

挑战

编写一个函数来检查学生是否通过考试。

  • 假设及格分数为 50
  • 如果学生分数高于 50,则返回 Passed。否则,返回 Failed

视频:Python if...else 语句

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战