简介
条件语句是每种编程语言的一部分。通过条件语句,我们可以编写有时运行有时不运行的代码,具体取决于程序在那个时间点的条件。
当我们完全执行程序的每个语句时,按顺序从顶部到底部移动,我们并没有要求程序评估特定的条件。通过使用条件语句,程序可以确定是否满足某些条件,然后告诉程序接下来该做什么。
让我们回顾一些我们会使用条件语句的例子:
- 如果学生的考试成绩超过65%,报告她的成绩通过;如果没有,报告她的成绩不通过
- 如果他的账户里有钱,计算利息;如果没有,收取罚款
- 如果他们购买了10个或更多的橙子,计算5%的折扣;如果购买的少于10个,则不计算折扣
通过评估条件并根据是否满足这些条件来分配要运行的代码,我们正在编写条件代码。
本教程将带领您学习如何在 Python 编程语言中编写条件语句。
先决条件
您应该已经安装了 Python 3,并在计算机或服务器上设置了编程环境。如果您还没有设置编程环境,可以参考适用于您操作系统(Ubuntu、CentOS、Debian等)的本地编程环境或服务器编程环境的安装和设置指南。
If 语句
我们将从
在纯文本编辑器中,打开一个文件并编写以下代码:
grade = 70 if grade >= 65: print("Passing grade")
通过这段代码,我们有一个名为
将程序保存为
在这种情况下,成绩为
Passing grade
现在让我们通过将
grade = 60 if grade >= 65: print("Passing grade")
当我们保存并运行此代码时,我们将不会收到任何输出,因为条件未满足,我们也没有告诉程序执行另一个语句。
再举一个例子,让我们计算银行账户余额是否低于0。让我们创建一个名为
balance = -5 if balance < 0: print("Balance is below 0, add funds now or you will be charged a penalty.")
当我们使用
Balance is below 0, add funds now or you will be charged a penalty.
在程序中,我们使用值
Else 语句
很可能我们希望程序在
为了实现这一点,我们将在上面的成绩条件中添加一个
grade = 60 if grade >= 65: print("Passing grade") else: print("Failing grade")
由于上面的成绩变量的值为
当我们保存并运行程序时,我们将收到以下输出:
Failing grade
如果我们将程序重写为给定值为
要在银行账户示例中添加一个
balance = 522 if balance < 0: print("Balance is below 0, add funds now or you will be charged a penalty.") else: print("Your balance is 0 or above.")
Your balance is 0 or above.
在这里,我们将
通过将
Else if 语句
到目前为止,我们已经介绍了条件语句的布尔选项,每个
在银行账户程序中,我们可能希望对三种不同情况有三种离散的输出:
- 余额低于0
- 余额等于0
- 余额高于0
. . . if balance < 0: print("Balance is below 0, add funds now or you will be charged a penalty.") elif balance == 0: print("Balance is equal to 0, add funds soon.") else: print("Your balance is 0 or above.")
现在,一旦我们运行程序,可能会出现三种可能的输出:
- 如果变量
balance 等于0 ,我们将收到elif 语句的输出(Balance is equal to 0, add funds soon. ) - 如果变量
balance 设置为正数,我们将收到else 语句的输出(Your balance is 0 or above. )。 - 如果变量
balance 设置为负数,输出将是if 语句的字符串(Balance is below 0, add funds now or you will be charged a penalty )。
但是,如果我们想要有更多的可能性怎么办?我们可以通过在代码中编写多个
在
- 90或以上相当于 A 等级
- 80-89 相当于 B 等级
- 70-79 相当于 C 等级
- 65-69 相当于 D 等级
- 64或以下相当于 F 等级
要运行此代码,我们将需要一个
让我们重写上面的示例代码,以便打印出每个字母等级的字符串。我们可以保持
. . . if grade >= 90: print("A grade") elif grade >=80: print("B grade") elif grade >=70: print("C grade") elif grade >= 65: print("D grade") else: print("Failing grade")
由于
- 如果成绩大于90,程序将打印
A grade ,如果成绩小于90,程序将继续下一个语句… - 如果成绩大于或等于80,程序将打印
B grade ,如果成绩为79或更低,程序将继续下一个语句… - 如果成绩大于或等于70,程序将打印
C grade ,如果成绩为69或更低,程序将继续下一个语句… - 如果成绩大于或等于65,程序将打印
D grade ,如果成绩为64或更低,程序将继续下一个语句… - 程序将打印
Failing grade ,因为上述所有条件都未满足。
嵌套的 If 语句
一旦您对
if statement1: #外部 if 语句 print("true") if nested_statement: #嵌套 if 语句 print("yes") else: #嵌套 else 语句 print("no") else: #外部 else 语句 print("false")
这段代码可能会产生几种可能的输出:
- 如果
statement1 评估为真,程序将评估nested_statement 是否也为真。如果两种情况都为真,输出将是:
true yes
- 然而,如果
statement1 评估为真,但nested_statement 评估为假,输出将是:
true no
- 如果
statement1 评估为假,嵌套的 if-else 语句将不会运行,因此只有else 语句将单独运行,输出将是:
false
我们还可以在代码中嵌套多个
if statement1: #外部 if print("hello world") if nested_statement1: #第一个嵌套 if print("yes") elif nested_statement2: #第一个嵌套 elif print("maybe") else: #第一个嵌套 else print("no") elif statement2: #外部 elif print("hello galaxy") if nested_statement3: #第二个嵌套 if print("yes") elif nested_statement4: #第二个嵌套 elif print("maybe") else: #第二个嵌套 else print("no") else: #外部 else statement("hello universe")
在上面的代码中,每个
让我们看一个嵌套
. . . if grade >= 65: print("Passing grade of:") if grade >= 90: print("A") elif grade >=80: print("B") elif grade >=70: print("C") elif grade >= 65: print("D") else: print("Failing grade")
如果我们使用整数值
如果我们使用
当然,我们可以添加更多的选项,并使用第二层嵌套的 if 语句。也许我们想要分别评估 A+、A 和 A- 的成绩。我们可以通过首先检查成绩是否及格,然后检查成绩是否大于96来实现这一点,例如:
. . . if grade >= 65: print("Passing grade of:") if grade >= 90: if grade > 96: print("A+") elif grade > 93 and grade <= 96: print("A") elif grade >= 90: print("A-") . . .
在上面的代码中,对于
- 检查成绩是否大于或等于65(true)
- 打印
Passing grade of: - 检查成绩是否大于或等于90(true)
- 检查成绩是否大于96(false)
- 检查成绩是否大于93且小于或等于96(true)
- 打印
A - 离开这些嵌套的条件语句,并继续执行剩余的代码
因此,对于成绩为96的程序输出如下:
Passing grade of: A
嵌套的
结论
通过使用诸如
要继续练习条件语句,可以尝试使用不同的操作符,将操作符与