如何在 Python 3 中编写条件语句

介绍

条件声明是每个编程语言的一部分,有条件声明,我们可以有代码,有时运行,有时不运行,取决于该程序当时的条件。

当我们完全执行一个程序的每个陈述时,从顶部移动到底部,每个行按顺序执行,我们并不要求该程序评估特定条件。

让我们看看一些我们使用条件陈述的例子:

  • 如果学生在考试中获得超过65%,报告她的成绩通过;如果没有,报告她的成绩失败 *如果他有钱在他的帐户中,计算利息;如果他没有,收取罚款费 *如果他们购买10个橙子或更多,计算5%的折扣;如果他们购买更少,那么不要

通过评估条件并根据这些条件是否满足而分配运行代码,我们正在编写条件代码。

本教程将带您通过在Python编程语言中编写条件声明。

前提条件

如果您没有设置编程环境,您可以参考本地编程环境的安装和安装指南(https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming-environment-for-python-3)或适用于您的操作系统(Ubuntu, CentOS, Debian 等)的编程环境(https://www.digitalocean.com/community/tutorial_collections/how-to-install-python-3-and-set-up-a-programming-environment)。

如果声明

我们将从如果声明开始,它将评估一个声明是否是真实的或错误的,并且只在声明是真实的情况下运行代码。

<$>[info] 信息: 要跟进本教程中的示例代码,请在本地系统上运行python3命令,打开Python交互壳。

在简单的文本编辑器中,打开一个文件并写下以下代码:

1grade = 70
2
3if grade >= 65:
4    print("Passing grade")

有了这个代码,我们有变量级别并给它70的整数值,然后我们使用如果陈述来评估变量级别是否大于或等于(>= )到65

将该程序保存为grade.py,并使用命令python grade.py从终端窗口的本地编程环境中运行。

在这种情况下,70 does 等级符合大于或等于 65 的条件,因此在运行程序后,您将收到以下输出:

1[secondary_label Output]
2Passing grade

现在让我们通过将级别变量值更改为60来改变这个程序的结果:

1[label grade.py]
2grade = 60
3
4if grade >= 65:
5    print("Passing grade")

当我们保存并运行 this 代码时,我们不会收到任何输出,因为条件是 not 满足的,我们没有告诉程序执行另一个陈述。

再举一个例子,让我们计算一下银行账户余额是否低于0,然后创建一个名为account.py的文件,然后写下以下程序:

1[label account.py]
2balance = -5
3
4if balance < 0:
5    print("Balance is below 0, add funds now or you will be charged a penalty.")

当我们使用python account.py运行该程序时,我们将收到以下输出:

1[secondary_label Output]
2Balance is below 0, add funds now or you will be charged a penalty.

在程序中,我们将变量平衡初始化为-5的值,这小于0。由于平衡满足了如果陈述(平衡 < 0)的条件,一旦我们保存并运行代码,我们将收到字符串输出。

其他声明

很可能我们会希望程序做一些事情,即使一个如果陈述被评估为错误,在我们的分级示例中,我们将想要输出是否分级通过或失败。

要做到这一点,我们将添加一个else声明,以此构建如下等级条件:

1[label grade.py]
2grade = 60
3
4if grade >= 65:
5    print("Passing grade")
6
7else:
8    print("Failing grade")

由于上述等级变量有60的值,因此如果声明被评估为错误,因此程序不会打印通过等级

当我们保存并运行程序时,我们将收到以下输出:

1[secondary_label Output]
2Failing grade

然后,如果我们重写程序以给评级一个值为65或更高,我们将获得输出通过评级

为了在银行账户示例中添加一个else声明,我们将代码重写如下:

1[label account.py]
2balance = 522
3
4if balance < 0:
5    print("Balance is below 0, add funds now or you will be charged a penalty.")
6
7else:
8    print("Your balance is 0 or above.")
1[secondary_label Output]
2Your balance is 0 or above.

在这里,我们将平衡变量值更改为正数,以便else陈述打印。

通过将如果声明与else声明相结合,您正在构建一个两个部分的条件声明,该声明会告诉计算机执行某些代码,无论如果条件是否满足。

另一个如果声明

到目前为止,我们已经提出了一个布尔语的条件陈述选项,每个如果陈述评估为真或假。在许多情况下,我们将想要一个程序,评估两个以上可能的结果。

在银行账户程序中,我们可能希望为三个不同的情况有三个不对称的输出:

  • 余额低于 0
  • 余额等于 0
  • 余额高于 0

elif声明将如下放置在if声明和else声明之间:

 1[label account.py]
 2. . .
 3if balance < 0:
 4    print("Balance is below 0, add funds now or you will be charged a penalty.")
 5
 6elif balance == 0:
 7    print("Balance is equal to 0, add funds soon.")
 8
 9else:
10    print("Your balance is 0 or above.")

现在,有三种可能发生的输出,一旦我们运行该程序:

  • 如果平衡变量等于0,我们将从平衡陈述中获取输出(平衡等于0,即时添加资金) *如果平衡变量设置为正数,我们将从else陈述中获取输出(您的平衡为0或以上)。

但是,如果我们想要有三个以上的可能性,我们可以通过在我们的代码中写入多个elif声明来做到这一点。

grade.py程序中,让我们重写代码,以便有几个字母等级对应于数字等级的范围:

  • 90 或以上等同于 A 级
  • 80-89 等同于 B 级
  • 70-79 等同于 C 级
  • 65-69 等同于 D 级
  • 64 或以下等同于 F 级

要运行此代码,我们需要一个如果声明,三个elif声明,以及一个else声明,以处理所有失败案例。

让我们从上面的例子中重写代码,以获得打印每个字母等级的字符串,我们可以保持我们的else陈述相同。

 1[label grade.py]
 2. . .
 3if grade >= 90:
 4    print("A grade")
 5
 6elif grade >=80:
 7    print("B grade")
 8
 9elif grade >=70:
10    print("C grade")
11
12elif grade >= 65:
13    print("D grade")
14
15else:
16    print("Failing grade")

由于elif声明会按顺序进行评估,我们可以保持我们的声明相当基本,该程序正在完成以下步骤:

如果等级大于90,程序会打印A级,如果等级小于90,程序会继续到下一个陈述... 2.如果等级大于或等于80,程序会打印B级,如果等级小于79,程序会继续到下一个陈述... 3.如果等级大于或等于70,程序会打印C级,如果等级小于69,程序会继续到下一个陈述... 4.如果等级大于或等于65,程序会打印D级,如果等级小于64,程序会继续到下一个陈述... 5.程序会打印失败级,因为上述所有条件都没有满足

如果发表声明

一旦你对如果,elifelse的陈述感到舒适,你可以转向嵌入的条件陈述。我们可以使用嵌入的如果陈述用于我们想要检查第一个条件执行为真实的次要条件的情况。

 1if statement1:				#outer if statement
 2    print("true")
 3
 4    if nested_statement:	#nested if statement
 5        print("yes")
 6
 7    else:					#nested else statement
 8        print("no")
 9
10else:						#outer else statement
11    print("false")

一些可能的输出可以从这个代码中产生:

  • 如果'statement1' 评估为 true,则程序会评估 'nested_statement' 是否也评估为 true. 如果两种情况都是 true,则输出将是:
1[secondary_label Output]
2true
3yes
  • 但是,如果'statement1' 评估为 true,但 'nested_statement' 评估为 false,则输出将是:
1[secondary_label Output]
2true
3no
  • 如果陈述1评估为假,嵌入的 if-else 陈述将不会运行,因此else陈述将单独运行,输出将是:
1[secondary_label Output]
2false

我们也可以在我们的代码中嵌入多个如果陈述:

 1if statement1:					#outer if 
 2    print("hello world")
 3
 4    if nested_statement1:		#first nested if 
 5        print("yes")
 6
 7    elif nested_statement2:		#first nested elif
 8        print("maybe")
 9
10    else:						#first nested else
11        print("no")
12
13elif statement2:				#outer elif
14    print("hello galaxy")
15
16    if nested_statement3:		#second nested if
17        print("yes")
18
19    elif nested_statement4:		#second nested elif
20        print("maybe")
21
22    else:						#second nested else
23        print("no")
24
25else:							#outer else
26    statement("hello universe")

在上面的代码中,除了elif陈述之外,每个if陈述内部还有一个嵌入的if陈述,这将允许每个条件内提供更多的选项。

让我们看看我们的grade.py程序中嵌入的如果陈述的一个例子。我们可以检查一个等级是否先通过(大于或等于65%),然后评估数字等级应等于哪个字母等级。

 1[label grade.py]
 2. . .
 3if grade >= 65:
 4    print("Passing grade of:")
 5
 6    if grade >= 90:
 7        print("A")
 8
 9    elif grade >=80:
10        print("B")
11
12    elif grade >=70:
13        print("C")
14
15    elif grade >= 65:
16        print("D")
17
18else:
19    print("Failing grade")

如果我们运行代码以变量级别设置为整数值92,那么第一个条件就会满足,然后程序会打印出通过级别的:

如果我们运行代码的级别变量设置为60,那么第一个条件没有满足,所以程序会跳过嵌入的如果陈述,并移动到else陈述,并打印出失败级别

当然,我们可以为此添加更多的选项,并使用第二层嵌入式如果声明。也许我们会想要单独评估A+,A和A级。我们可以这样做,首先检查等级是否通过,然后检查等级是否为90或以上,然后检查等级是否超过96的A+,例如:

 1[label grade.py]
 2. . .
 3if grade >= 65:
 4    print("Passing grade of:")
 5
 6    if grade >= 90:
 7        if grade > 96:
 8            print("A+")
 9
10        elif grade > 93 and grade <= 96:
11            print("A")
12
13        elif grade >= 90:
14            print("A-")
15. . .

在上面的代码中,对于一个级别变量设置为96,该程序将运行如下:

检查是否大于或等于65(真) 2 打印通过级别: 3 检查是否大于或等于90(真) 4 检查是否大于96(假) 5 检查是否大于93以及小于或等于96(真) 6 打印A 7 留下这些嵌入的条件声明并继续使用剩余的代码

因此,96级程序的结果看起来如下:

1[secondary_label Output]
2Passing grade of:
3A

嵌入的如果语句可以为您的代码添加几个特定的条件级别。

结论

通过使用条件陈述,如如果陈述,你将对你的程序所执行的内容有更大的控制权。条件陈述告诉程序评估是否满足某种条件。

要继续练习条件式陈述,请尝试使用不同的操作员(https://andsky.com/tech/tutorials/how-to-do-math-in-python-3-with-operators),将操作员与andor相结合,并使用条件式陈述旁边的 环节

Published At
Categories with 技术
comments powered by Disqus