在学习编程的过程中,经常需要创建一些在现实生活中不太容易应用的程序。 毕竟,有时您只能在特定条件下遵循指示。 为了能够在程序中实现这一点,所有语言都有控制语句。 在它们的帮助下,您可以控制代码执行流程、创建循环或仅在特定条件为真时执行特定操作。
今天我们将讨论 if 语句,它检查当前情况的某个条件,并根据这些信息做出进一步行动的决定。
控制语句的类型
通常,if 不是控制程序流程的唯一语句。 他本人也可以成为更大的运营商链中的一员。
还有控制其执行过程的循环和语句。 今天我们只讲条件运算符和它可以参与的链。
在编程中,有分支这样的东西。 正是这意味着只有在特定条件为真时才执行的命令序列。 标准本身可能不同:
- 变量与某个值的相等性。
- 执行特定操作。
- 应用程序状态(折叠与否)。
频谱可以更大。 条件语句有几种类型:
- 有一个分支。 也就是说,执行单个检查,结果是执行某些操作。
- 有两个或多个分支。 如果标准 1 为真,则检查标准 2。如果为真,则检查 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 执行一个非常重要的功能——它确保仅在需要时才执行某些代码。 没有它就无法想象编程,因为即使是最简单的算法也需要分叉,例如“如果你向左走,你会找到它,如果你向右走,那么你需要做这个和那个。”