介绍
条件语句是每种编程语言的一部分。使用条件语句,我们可以有代码,有时运行,在其他时间不运行,这取决于当时的程序的条件。 当我们完全执行一个程序的每个语句,从顶部移动到底部,每一行按顺序执行,我们不要求程序评估特定的条件。通过使用条件语句,程序可以确定是否满足某些条件,然后被告知接下来要做什么。 让我们看看一些例子,我们将使用条件语句:- 如果学生在她的考试中收到超过65%的报酬,报告她的成绩通过;如果没有,则报告她的成绩失败
- 如果他在他的帐户里有钱,计算利息;如果他不这样做,要收取罚金
- 如果他们购买10个或更多的橙子,计算折扣5%;如果他们买的少,那么不要
If语句
我们将与启动if
声明,这只会在该声明是真实的情况下,评价一个陈述是否是真还是假,和运行代码。 在纯文本编辑器中,打开一个文件并写下面的代码:
grade = 70
if grade >= 65:
print("Passing grade")
有了这个代码,我们有可变
grade
,并赋予它的整数值
70
。 然后,我们使用的是
if
语句来计算变量等级是否大于或等于(
>=
)为
65
。 如果它满足这个条件,我们是在告诉程序打印出字符串
Passing grade
。 保存该程序作为
grade.py
,并在运行它
的本地编程环境,从终端窗口的命令
python grade.py
。 在这种情况下,70级
并满足大于或等于65的条件,所以一旦你运行该程序,您将收到以下输出:
OutputPassing grade
现在,让我们用的值更改更改此程序的结果
grade
变量
60
:
grade.py
grade = 60
if grade >= 65:
print("Passing grade")
当我们保存并运行
这段代码,我们将不会获得任何输出,因为条件
不成立,我们没有告诉程序执行另一个说法。 举一个例子,让我们计算一个银行账户余额是否低于0。让我们创建一个名为
account.py
写下面的程序:
account.py
balance = -5
if balance < 0:
print("Balance is below 0, add funds now or you will be charged a penalty.")
当我们运行程序
python account.py
,我们会收到以下的输出:
OutputBalance is below 0, add funds now or you will be charged a penalty.
在程序中,我们初始化变量
balance
用的值
-5
,小于0。由于平衡满足的条件
if
语句(
balance < 0
一旦我们保存并运行该代码,我们将接收的串输出。再次,如果我们将余额更改为0或正数,我们将不会收到输出。
Else语句
很可能,我们会希望程序做一些事情,即使是if
语句计算为false。在我们的成绩示例中,我们将需要输出成绩是通过还是失败。 要做到这一点,我们将增加一个
else
语句上面构造这样的等级条件:
grade.py
grade = 60
if grade >= 65:
print("Passing grade")
else:
print("Failing grade")
由于以上级变量的值
60
时,
if
语句计算为假,所以程序将不打印出来
Passing grade
。 在
else
后面的语句告诉程序做一些事情呢。 当我们保存并运行程序时,我们将收到输出:
OutputFailing grade
如果我们再重写程序给予等级值
65
或更高,我们反而会接收输出
Passing grade
。 要添加
else
语句的银行账户示例中,我们重写这样的代码:
account.py
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.")
OutputYour balance is 0 or above.
在这里,我们改变了
balance
变量值的正数,以使
else
语句将打印。 拿到第一
if
语句来打印,我们可以重写价值为负数。 通过组合
if
用语句
else
语句,你正在构建一个两部分组成的条件语句会告诉计算机执行某些代码与否
if
条件得到满足。
Else if 语句
到目前为止,我们已经提出了条件语句布尔选项,每个if
语句评估为true或false。 在许多情况下,我们将需要一个评估两个以上可能结果的程序。 为此,我们将使用一个
else if语句,这是写在Python作为
elif
。 该
elif
或者if语句看起来像
if
声明,将评估其他条件。 在银行帐户计划中,我们可能希望针对三种不同情况具有三个离散输出:
- 结果低于0
- 结果等于0
- 结果高于0
elif
语句将被放置在之间
if
语句和
else
声明如下:
account.py
. . .
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
)。
elif
语句转换成我们的代码。 在
grade.py
程序,让我们重写代码,以便有相应的数值等级范围内的几个字母等级:
- 90以上相当于A级
- 80-89相当于B级
- 70-79相当于C级
- 65-69相当于D级
- 64以下相当于F级
if
语句,三
elif
语句,以及
else
的语句,将处理所有失败的情况。 让我们重写上面例子中的代码,得到打印出每个字母等级的字符串。我们可以保持我们的
else
说法一样。
grade.py
. . .
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")
由于
elif
语句将按顺序进行评估,我们可以保持我们的陈述很基本的。此程序正在完成以下步骤:
- 如果等级大于90时,程序将打印
A grade
,如果级别小于90时,程序将继续下一条语句... - 如果等级大于或等于80时,程序将打印
B grade
,如果等级为79或更低时,程序将继续下一条语句... - 如果等级大于或等于70时,程序将打印
C grade
,如果等级为69或更低时,程序将继续下一条语句... - 如果等级大于或等于65时,程序将打印
D grade
,如果等级为64或更低时,程序将继续下一条语句... - 该程序将打印
Failing grade
,因为所有上述条件没有得到满足。
嵌套 if 语句
一旦你感觉舒适的if
,
elif
和
else
语句,你可以移动到嵌套条件语句。 我们可以使用嵌套
if
对报表的情况下,我们要检查一个次要条件,如果第一个条件执行为真。 为此,我们可以在另一个if-else语句内部使用if-else语句。 让我们看一个嵌套的语法
if
语句:
if statement1: #outer if statement
print("true")
if nested_statement: #nested if statement
print("yes")
else #nested else statement
print("no")
else: #outer else statement
print("false")
运行此代码可能会导致几个可能的输出:
- 如果
statement1
计算为真,程序会再评估是否nested_statement
也计算为true。如果两种情况都为真,输出将是:
Outputtrue yes
- 但是,如果
statement1
计算结果为真实的,但nested_statement
计算为false,那么输出将是:
Outputyes false
- 如果
statement1
计算为false,嵌套的if-else语句将无法运行,所以else
语句将单独运行,输出将是:
我们也可以有多个Outputfalse
if
嵌套在我们的代码语句:
if statement1: #outer if
print("hello world")
if nested_statement1: #first nested if
print("yes")
elif nested_statement2: #first nested elif
print("maybe")
else #first nested else
print("no")
elif statement2: #outer elif
print("hello galaxy")
if nested_statement3: #second nested if
print("yes")
elif nested_statement4: #second nested elif
print("maybe")
else #second nested else
print("no")
else: #outer else
statement("hello universe")
在上面的代码中,有一个嵌套的
if
每个内声明
if
除了声明
elif
声明。这将允许在每个条件下的更多选项。 让我们来看看嵌套的if语句与我们的例子
grade.py
程序。 我们可以检查一个成绩是否先通过(大于或等于65%),然后评估数字成绩应该等于哪个字母成绩。 如果成绩没有通过,我们不需要通过字母成绩,而是可以让程序报告成绩失败。 我们修改后的代码与嵌套
if
语句将是这样的:
grade.py
. . .
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")
如果我们运行带有可变码
grade
设置为整数值
92
,第一个条件得到满足,程序将打印出
Passing grade of:
。 接着,将检查以查看是否等级是大于或等于90,并且由于此条件也满足时,它会打印出
A
。 如果我们运行的代码
grade
变量设置为
60
,那么第一个条件不满足,所以程序将跳过嵌套
if
语句和向下移动到
else
的语句,该程序打印出
Failing grade
。 我们当然可以为此添加更多选项,并使用第二层嵌套if语句。也许我们将要分别评估A +,A和A-的等级。我们可以这样做,首先检查等级是否通过,然后检查等级是否为90或以上,然后检查等级是否超过96为A +例如:
grade.py
. . .
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-")
. . .
在上面的代码,对于
grade
变量设置为
96
,该程序将运行以下命令:
- 检查等级是否大于或等于65(true)
- 打印出
Passing grade of:
- 检查等级是否大于或等于90(true)
- 检查等级是否大于96(假)
- 检查等级是否大于93,还小于或等于96(true)
- 打印
A
- 保留这些嵌套的条件语句,并继续剩余的代码
OutputPassing grade of:
A
嵌套
if
语句可以提供机会,条件的几个特定级别添加到您的代码。
结论
通过使用像条件语句if
语句,你将有超过你的程序执行什么更好的控制。条件语句告诉程序评估是否满足某个条件。如果条件满足,它将执行特定的代码,但如果不满足,程序将继续向下移动到其他代码。 继续修炼条件语句,尝试使用不同的运算符,结合
and
或
or
运算,并使用循环的条件语句。