Python 中的条件 if 语句。 语法、else/elif 块、示例

在学习编程的过程中,经常需要创建一些在现实生活中不太容易应用的程序。 毕竟,有时您只能在特定条件下遵循指示。 为了能够在程序中实现这一点,所有语言都有控制语句。 在它们的帮助下,您可以控制代码执行流程、创建循环或仅在特定条件为真时执行特定操作。

今天我们将讨论 if 语句,它检查当前情况的某个条件,并根据这些信息做出进一步行动的决定。

控制语句的类型

通常,if 不是控制程序流程的唯一语句。 他本人也可以成为更大的运营商链中的一员。

还有控制其执行过程的循环和语句。 今天我们只讲条件运算符和它可以参与的链。

在编程中,有分支这样的东西。 正是这意味着只有在特定条件为真时才执行的命令序列。 标准本身可能不同:

  1. 变量与某个值的相等性。
  2. 执行特定操作。
  3. 应用程序状态(折叠与否)。

频谱可以更大。 条件语句有几种类型:

  1. 有一个分支。 也就是说,执行单个检查,结果是执行某些操作。
  2. 有两个或多个分支。 如果标准 1 为真,则检查标准 2。如果为真,则检查 3。因此,根据需要执行尽可能多的检查。
  3. 有几个条件。 这里的一切都很简单。 解释器检查多个条件或其中之一。

如果声明

if 语句的结构在所有语言中都是相似的。 但是,在 Python 中,它的语法与所有其他语法有些不同:

如果条件:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

首先,声明运算符本身,然后写入开始工作的条件。 条件可以为真或假。

接下来是一个带有命令的块。 如果它立即遵循要满足的标准,则相应的命令序列称为 if 块。 您可以在其中使用任意数量的命令。

注意! 所有 if 块命令中的缩进必须是相同的大小。 块边界由缩进决定。 

根据语言文档,缩进是 4 个空格。 

这个运算符是如何工作的? 当解释器看到 if 词时,它会立即根据用户指定的条件检查表达式。 如果是这种情况,那么他就会开始寻找指示并遵循它们。 否则,将跳过此块中的所有命令。

如果条件后的语句没有缩进,则不将其视为 if 块。 在我们的情况下,这条线是 . 因此,无论检查结果如何,都会执行此行。

这是此运算符如何工作的示例的代码片段。

number = int(input(“输入一个数字:”))

如果数字 > 10:

    print("数字大于 10")

该程序提示用户输入一个数字并检查它是否大于 10。如果是,则返回适当的信息。 例如,如果用户输入数字 5,那么程序将简单地结束,仅此而已。

但是如果你指定数字100,那么解释器会理解为超过XNUMX,并报告它。

注意! 在我们的例子中,如果条件为假,程序就会停止,因为在指令之后没有给出任何命令。

上面的代码中只有一个命令。 但还有更多。 唯一的要求是缩进。

现在让我们分析一下这个命令序列。

number = int(input(“写一个数字:”))

如果数字 > 10:

    打印(“第一行”)

    打印(“第二行”)

    打印(“第三行”)

print(“执行的行,不管输入的数字”)

print(“结束申请”)

尝试猜测输入值 2、5、10、15、50 会输出什么。

如您所见,如果用户输入的数字大于十,则输出三行 + 一行带有文本“每次运行...”和一行“结束”,如果小于十,则仅输出一行,带有不同的文本。 如果为真,则仅执行第 3,4,5、XNUMX、XNUMX 行。 但是,无论用户指定什么数字,最后两行都将被写入。

如果直接在控制台中使用语句,结果会有所不同。 如果在指定验证标准后按 Enter,解释器会立即打开多行模式。

假设我们编写了以下命令序列。

>>>

>>> n = 100

>>> 如果 n > 10:

...

之后,我们将看到 >>> 已被省略号替换。 这意味着启用了多行输入模式。 简单来说,如果你按下回车,你就会被转入第二阶段指令的输入。 

为了退出这个块,你需要在块中再添加一个构造 if.

>>>

>>> n = 100

>>> 如果 n > 10:

… 打印(«nv 10»)

...

如果条件不成立,则程序结束。 这是一个问题,因为用户可能认为这样的程序由于失败而关闭。 因此,有必要向用户提供反馈。 为此,使用了一个链接 如果别的.

表达式运算符 如果别的

此运算符允许您实现链接:如果表达式匹配某个规则,则执行这些操作,如果不匹配,则执行其他操作。 也就是说,它允许您将程序的流程分成两条路。 语法很直观:

如果条件:

    # 如果是块

    声明1

    声明2

    等等

其他:

    # 其他块

    声明3

    声明4

    等等:

让我们解释一下这个运算符是如何工作的。 一、标准语句在线程中执行 红豆杉, 检查是否匹配 流程条件 “对或错”。 进一步的操作取决于检查的结果。 如果为真,则直接执行条件后面的指令序列中的指令。 红豆杉, 如果它是假的,那么 其他

这样您就可以处理错误。 例如,用户需要输入半径。 显然,它只能是一个带加号的数字,或者它是一个空值。 如果它小于 0,那么您需要发出一条消息,要求您输入一个正数。 

这是实现此任务的代码。 但是这里有一个错误。 试着猜猜是哪一个。 

radius = int(input(“输入半径:”))

如果半径 >= 0:

    print("周长 = ", 2 * 3.14 * 半径)

    print(“面积 =”, 3.14 * 半径 ** 2)

    其他:

        print("请输入正数")

缩进不匹配错误。 如果与其他 必须位于没有它们或具有相同数量的它们(取决于它们是否嵌套)。

让我们给出另一个用例(操作员对齐后一切都会正确)——一个检查密码的应用程序元素。

密码=输入(“输入密码:”)

如果密码 == «sshh»:

    打印(“欢迎”)

其他:

    打印(“拒绝访问”)

如果密码是 sshh,此指令会进一步跳过此人。 如果有任何其他字母和数字组合,则会显示消息“访问被拒绝”。

语句表达式 if-elif-else

只有当多个条件不成立时,才会执行块中的语句。 其他. 这个表达式是这样工作的。

如果条件_1:

    # 如果是块

    声明

    声明

    更多声明

elif 条件_2:

    # 第一个 elif 块

    声明

    声明

    更多声明

elif 条件_3:

    # 第二个 elif 块

    声明

    声明

    更多声明

...

其他

    声明

    声明

    更多声明

您可以指定任意数量的附加条件.

嵌套语句

实现多个条件的另一种方法是在 if 块中插入额外的条件检查。

操作者 if 在另一个条件块内

gre_score = int(input(“输入您当前的信用额度”))

per_grad = int(input(“请输入您的信用等级:”))

如果 per_grad > 70:

    # 外部 if 块

        如果 gre_score > 150:

            # 内部 if 块

    print(“恭喜,你收到了一笔贷款”)

其他:

    print(“对不起,您没有资格获得贷款”)

该程序会执行信用评级检查。 如果小于 70,程序会报告用户没有资格获得信用。 如果大于,则执行第二次检查以查看当前信用额度是否大于 150。如果是,则显示一条消息,表明贷款已发放。

如果两个值都为假,则显示一条消息,说明用户没有获得贷款的可能性。 

现在让我们稍微修改一下那个程序。

gre_score = int(input(“输入电流限制:”))

per_grad = int(input(“输入信用评分:”))

如果 per_grad > 70:

    如果 gre_score > 150:

        print(“恭喜,你收到了一笔贷款”)

    其他:

        print(“您的信用额度低”)

其他:

    print(“对不起,您没有资格获得信用”)

代码本身非常相似,但是嵌套了 if 还提供了一种算法,以防它的条件被证明是错误的。 即卡上额度不足,但信用记录良好,显示“您的信用评分低”。

条件中的 if-else 语句 其他

让我们编写另一个程序,根据考试成绩确定学生的成绩。

score = int(input(“输入你的分数:”))

如果分数 >= 90:

    print(“太好了!你的成绩是 A”)

其他:

    如果分数 >= 80:

print(“太好了!你的成绩是B”)

    其他:

如果分数 >= 70:

    print(“好!你的成绩是C”)

其他:

    如果分数 >= 60:

print(“你的成绩是 D。值得重复材料。”)

    其他:

print(“你考试不及格”)

应用程序首先检查分数是否大于或等于 90。如果是,则返回 A 级。 如果此条件为假,则执行后续检查。 乍一看,我们看到算法几乎相同。 所以,而不是检查里面 其他 更好地使用组合 如果-elif-else.

所以运营商 if 执行一个非常重要的功能——它确保仅在需要时才执行某些代码。 没有它就无法想象编程,因为即使是最简单的算法也需要分叉,例如“如果你向左走,你会找到它,如果你向右走,那么你需要做这个和那个。”

发表评论