[МУЗЫКА] Итак, мы разобрались, что же мы подразумеваем под условиями и когда их нужно использовать, и рассмотрели несколько примеров. Теперь давайте разбираться, как эта конструкция устроена в языке PYTHON. Когда мы пишем программу, мы всегда оперируем некими переменными. И этот случай — не исключение. Только для этого нам придется познакомиться с новыми переменными, с которыми мы раньше не сталкивались — это логические переменные. Итак, давайте возьмем один из примеров, который мы рассматривали ранее. Это пример про готовку яичницы. Мы хотим приготовить яичницу, открываем холодильник, после этого мы спрашиваем: "В холодильнике нет яиц?" И если ответ "да", то мы идем в магазин и покупаем яйца, потому что без них мы яичницу не приготовим. И после этого мы возвращаемся домой и выполняем Х-функцию "Приготовить яичницу". А если ответ на наш вопрос "нет", и в холодильнике есть яйца, мы не идем в магазин, мы игнорируем это действие и сразу же переходим к готовке яичницы. Итак, где же здесь переменная? Переменная — это как раз наше условие "в холодильнике нет яиц". Действительно, у нас есть это условие "если в холодильнике нет яиц", и возможно два варианта развития событий: либо яиц действительно нет, на наш вопрос мы ответили "да", условие выполнилось, и тогда выражение "в холодильнике нет яиц", оно истинно. И оно принимает значение "истина", если рассматривать его как переменную. Либо условие не выполнилось, и в холодильнике яйца есть, значит, ответ на наш вопрос "нет", и выражение "в холодильнике нет яиц" ложно, если рассматривать его как переменную, оно принимает ложное значение. То есть у нас есть некая переменная, которая может принимать всего два значения — либо истинное, либо ложное. Такие переменные мы с вами будем называть логическими переменными. Истинное значение в PYTHON называется TRUE, ложное значение в PYTHON называется FALSE. Осталось разобраться, как же нам получить вот эти логические переменные. А именно, как нам с помощью языка программирования PYTHON сказать, что, в холодильнике, например, нет яиц, или в холодильнике, наоборот, яйца есть, или, например, нам нужно обязательно приготовить яичницу с трех яиц и нужно проверить, что в холодильнике меньше трех яиц, или наоборот, что в холодильнике есть хотя бы три яйца. Для этого мы воспользуемся операторами сравнения. То есть если мы внимательней посмотрим на каждое из этих утверждений, мы поймем, что на самом деле это есть не что иное, как информация о том, в каком соотношении находятся две величины. Это, во-первых, количество яиц, которое у нас есть в холодильнике, а во-вторых, это количество яиц, которое нам нужно или, наоборот, не нужно, то есть, например, нам нужно обязательно три яйца, мы берем количество, которое у нас есть, и сравниваем с числом три. Или у нас нет яиц. Что это значит? Это означает, что количество яиц равно нулю. Мы сравниваем наше количество яиц с нулем. и информация о том, в каком соотношении находятся эти две величины. Результат их сравнения — это и есть логическая переменная, которую мы хотим получить. И сравнение в PYTHON мы выполняем с помощью операторов сравнения. То есть, если возвращаться к нашим блок-схемам, теперь внутри нашего условия, внутри нашего ромбика, задаем не просто вопрос "в холодильнике нет яиц", мы записываем некую операцию сравнения — мы сравниваем количество яиц, которое у нас в холодильнике, с нулем. И в этом нам помогает вот такой вот оператор сравнения, который записывается в виде двух значков равно вместе. Мы подробнее посмотрим на работу этого оператора в практической части, а пока что нам достаточно понимать, что эта запись будет равна TRUE, будет принимать истинное значение, когда количество яиц равно нулю, и будет принимать ложное значение, когда количество яиц, соответственно, не равно нулю. То есть, если у нас внутри ромбика истинное значение, мы переходим по стрелочке "да", идем в магазин, достаем нужные продукты, а если ложное значение. мы переходим по стрелочке "нет" и достаем нужные продукты, не заходя предварительно в магазин. А точно так же, как мы проверяем, что количество яиц равно нулю, мы можем проверить, что количество яиц, наоборот, не равно нулю. За это отвечает вот такой вот оператор, который записывается, как восклицательный знак, и равно. Это проверка на неравенство.У нас была проверка на равенство, а это — проверка на неравенство. И теперь, если у нас количество яиц какое-то любое отличное от нуля, то, что записано в ромбике, будет истинно, это будет TRUE, мы переходим по стрелочке, на которой написано "да", и сразу достаем нужные продукты, не заходя в магазин, потому что, если яйца есть, в магазин не надо. А вот если у нас количество яиц — это ноль, в ромбике будет записано "ложь", мы перейдем по стрелочке, на которой написано "нет", и пойдем в магазин, и только потом достанем продукты для готовки яичницы. Точно так же у нас будет записываться пример, когда у нас обязательно должно быть три яйца для готовки яичницы. Теперь мы спрашиваем количество яиц: меньше трех? Для этого мы записываем операцию сравнения количества яиц, которые есть в холодильнике, меньше трех. Мы делаем это с помощью вот такого оператора, который наверняка вам хорошо знаком с уроков математики. И теперь, если количество яиц, например ноль, один или два, то внутри ромбика записывается TRUE, мы переходим по стрелочке, на которой написано "да", выполняем инструкцию "пойти в магазин", снова переходим по стрелочке, достаем нужные продукты и начинаем готовить яичницу. А если количество яиц, например три, четыре, пять, то есть, оно не меньше трех, в ромбике записано "ложь", мы переходим по стрелочке "нет" и сразу готовим яичницу. И по аналогии, с тем, как мы сравниваем, что количество яиц меньше трех, мы можем сравнить, что там хотя бы три яйца. То есть мы теперь записываем, что количество яиц больше или равно трем. В отличие от уроков математики, где мы записывали такую операцию в один значочек с нижней крышечкой, у нас здесь будут использоваться два символа — значок больше и значок равно, то есть это операция "количество яиц больше или равно трем". Когда она будет истинной? Когда количество яиц у нас три, или четыре, или пять. В этом случае мы пройдем по стрелочке, на которой написано "да", пойдем в магазин, достанем продукты, а вот если количество — яиц один или два, три — уже нет, а вот один, два, ноль, — в этом случае выражение будет ложным, мы пройдем по стрелочке "нет", и только сначала пройдем в магазин и достанем нужные продукты. Отлично, мы разобрались, как видит логические переменные язык PYTHON, и теперь мы готовы написать в PYTHON наши условия полностью. Итак, вот перед нами уже отлично знакомая блок-схема, и теперь справа мы посмотрим, как это условие будет записываться в PYTHON. Для этого мы пользуемся такой конструкцией, как if. If, ну просто, если по-английски. Мы пишем вот это ключевое слово if, после него мы записываем наше условие, то есть, в данном случае, это будет операция сравнения, это то, что мы всегда пишем внутри нашего ромбика в блок-схеме. После этого мы обязательно ставим двоеточие, переходим на новую строчку, и обязательно после отступа мы записываем инструкции, которые совершаются, только когда условия выполняются, то есть то, что в блок-схеме обычно записывается в прямоугольничке. Отступ очень важен. Он показывает именно, что эти инструкции совершаются только при выполнении условия, иначе программа этого просто не поймет. Ведь у нас может быть несколько строчек, у нас может быть несколько инструкций, которые выполняются только при выполнении условия, и поэтому нам обязательно важен отступ, чтобы показать, что вот это все относится именно к условию, относится именно к этой конструкции if. Отступ можно поставить в виде табуляции из четырех проблов, — мы разберемся с этим подробнее в практическом блоке. Итак, и теперь, если у нас есть наш пример, что мы идем в магазин, если нет яиц, то вот так вот он будет записываться в PYTHON. Мы пишем if, дальше мы пишем результат сравнения яиц, которые в нашем холодильнике, и мы заводим переменную, которая называется, например, eggs, и мы сравниваем вот это eggs, количество яиц в нашем холодильнике, с нулем, то есть мы говорим — если количество яиц в нашем холодильнике равно нулю, то напечатать "идем в магазин". С функцией print вы уже должны быть отлично знакомы. То есть, еще раз — мы написали if, мы написали то, что находится в нашем ромбике, — это наше условие, наша логическая переменная, наш результат сравнения, в данном случае — это сравнение количества яиц в нашем холодильнике и нуля. И если это условие выполнилось, если то, что написано после if равно TRUE, В этом случае инструкция напечатать "идем в магазин" выполняется, а соответственно, если то, что записано после if равно ложь, false, то инструкция "идем в магазин" не будет выполняться. Но это еще не все, что нужно знать про if. До этого мы выполняли только инструкцию, когда условие выполняется. Но теперь у нас, например, есть инструкция, когда условие не выполняется. То есть мы вернемся к тому примеру, когда для готовки яичницы нам нужно хотя бы три яйца. И мы говорим, что если в холодильнике есть хотя бы три яйца, мы готовим яичницу. А иначе, если условие не выполняется, мы пойдем в кафе. Мы не будем идти в магазин, тратить лишнее время, мы сразу же пойдем позавтракать в кафе. То есть теперь у нас есть наше условие, если в холодильнике хотя бы три яйца, и два варианта действия, которые являются как бы взаимоисключающими. Либо выполняется одно, либо выполняется другое. Вот как это будет записываться на блок-схеме и в языке Python. У нас есть некое условие. Когда оно выполняется, выполняются одни инструкции, мы идем по стрелочке "да", а когда условие не выполняется, мы идем по стрелочке, на которой написано "нет", и выполняем другие инструкции. В зависимости от значение условия true или false, мы всегда выполняем либо одно, либо другое, но мы никогда не выполняем и то, и другое вместе. И вот как это записывается в Python. Мы пишем уже знакомое слово if, после него записываем условие, которое записывается в ромбике, ставим двоеточие, в новой строке после отступа записываем инструкции. Это те инструкции, которые записаны в ромбике, в которому мы переходим по стрелочке "да". И теперь у нас появляется ключевое слово else, оно пишется без отступа, ставится двоеточие, и с новой строки после отступа пишется инструкция, которая выполняется, когда наше условие ложное, когда оно не выполняется. Это тот прямоугольничек, который стоит справа, к которому мы переходим по стрелочке "нет". И вот так в этом случае будет выглядеть блок-схема для нашего примера с готовкой яичницы и похода в кафе. Мы сравниваем количество яиц в нашем холодильнике с числом 3. Если оно меньше трех, мы проходим по стрелочке, на которой написано "да" и выполняем инструкцию "идем в кафе". Если условие не выполняется, у нас достаточно яиц, мы можем приготовить яичницу дома, мы проходим по стрелочке, на которой написано "нет". Но мы никогда не идем в кафе и не готовим яичницу вместе. Если у нас в ромбике истина, мы проходим по стрелочке "да". Если в ромбике "ложь", мы проходим по стрелочке "нет". Либо одно, либо другое. Если... иначе... Кроме этого конструкции if и if...else могут быть вложены друг в друга. Например, теперь мы говорим, если у нас есть хотя бы три яйца, то мы будем готовить дома. Но что мы будем готовить? Мы дополнительно проверим, что в холодильнике есть молоко. И если оно есть, мы приготовим омлет. А если у нас яиц недостаточно, мы даже проверять не будем, что у нас молоко есть, и сразу пойдем в кафе. Подробнее мы рассмотрим это в практической части, а сейчас просто давайте быстро взглянем на то, как выглядит блок схема для этой задачи. То есть вот мы осуществили проверку на количество яиц. И мы либо идем дальше и проверяем, есть ли молоко. Либо мы даже туда не заходим и сразу идем в кафе. Вложенными могут быть и конструкции if...else, то есть теперь мы можем вложить нашего условия, что яйца есть, не только if, если есть молоко, готовим омлет, но и то, что делать, если молока нет. Если молока нет, мы будем готовить яичницу только из яиц, молоко нам для этого не понадобится. И мы видим, что в этом случае на нашей блок-схеме от условия, что у нас есть молоко, будут отходить не одна, а две стрелочки, у нас появляются два случая, либо мы готовим омлет, либо мы готовим яичницу. Но подробнее, как писать такие вещи, мы, конечно, посмотрим позднее в практической части. Но это еще не все, что нам нужно знать об условиях, есть еще интересные моменты. [МУЗЫКА] [МУЗЫКА]