В этом видео мы поговорим о ещё одном базовом типе, который есть в Python, а именно о логическом типе, он же тип bool. В Python'е тип bool представлен двумя значениями, как и в других языках — это true и это false. Что важно отметить, что в Python тип bool является подтипом целого числа, и, по большому счету true — это true соответствует единице, а false соответствует нулю. Если мы присвоим переменной result true, то, посмотрев на тип переменной, мы увидим, что это как раз тип bool. Когда нужны логические типы? По большому счету они нужны тогда, когда нужно проверить на истинность какое-то выражение — является выражение истинным либо является выражение ложью. Например, в Python'е мы можем проверить, что значения двух объектов равны. Это делается с помощью оператора «равно». Это два знака равно, идущие друг за другом. На слайде вы можете видеть, как это записывается. Также есть оператор «не равно», который позволяет сделать противоположное действие, то есть сравнить то, что значения не равны. Обратите внимание, что результатом выполнения обоих выражений являются логические типы — либо true, либо false. >, <, ≥, — как их записывать, вы можете видеть на слайде. И также интересной особенностью является наличие в Python'е множественного сравнения. Посмотрите на пример на слайде. Мы объявляем переменную x, которая равна целому числу 2. Дальше записываем множественное сравнение, которое в итоге выдает результат true, потому что x > 1, и в то же время x < 3. Это очень удобно бывает на практике. Конвертация типов. Если мы попробуем преобразовать целое число к типу bool, то есть к логическому типу, то если число не равняется нулю, то получим в результате true, если 0, то false. То же самое верно для вещественных чисел. Поговорим о логических выражениях. Логические выражения — это выражения, которые содержат в себе один или больше логических операторов. Какие мы знаем логические операторы? Это может быть логическое «и», логическое «или» или, например, логическое отрицание. В Python'е представлены все эти операторы и, например, логическое «и» записывается с помощью слова and. На примере вы можете видеть, как его использовать. Также есть логическое «или» — это оператор or. Также опять же обратите внимание на пример. И есть логическое отрицание — это оператор not. Мы можем составлять сложные логические выражения, в которые будут входить несколько логических операторов. При этом в этом логическом выражении у операторов есть свой приоритет, порядок исполнения, как и в математических операциях. Стоит отметить, что этот порядок мы также можем задавать, используя круглые скобки, как и в случае с математическим выражением, мы видели ранее. Следующая особенность Python — это то, что логические выражения ленивые. Давайте подробно разберем это на примере. У нас есть переменная x, которая равняется 12 и переменная y, которая равняется false. И есть логическое выражение x or y. В результате работы этого выражения мы видим, что на экране не true, как мы могли бы ожидать, а число 12. Что здесь происходит? Python начинает интерпретировать логическое выражение, видит, что x является истинным, и понимает, что ему не нужно выполнять оставшуюся часть логического выражения. Поэтому он y уже не будет проверять, x — это истина, оператор or стоит, значит нас устраивает то, что мы можем остановиться в этот момент и результатом выполнения выражения будет как раз значение x. На другом примере у нас есть переменная x, которая равна 12, и переменная z, которая равна строке boom. В результате работы логического выражения x and z мы получаем как результат работы логического выражения строку boom. Происходит все то же самое. Python выполняет логическое выражение, до тех пор, пока оно имеет смысл, и результатом является последнее значение. Посмотрим небольшой пример — задачу, определить високосный год или нет. Существует такое правило, которое позволяет понять, является ли год високосным или нет. Год является високосным, если он кратен 4, но при этом не кратен 100, либо кратен 400. Звучит достаточно запутанно, однако решение всего в три строчки и как раз с помощью логических выражений. Мы объявляем переменную, которая содержит в себе год и далее составляем сложное логическое выражение, включающее в себя несколько логических операторов. При этом задаем порядок выполнения операторов скобками, обратите внимание. И что стоит отметить — то, что это то, о чем я говорил. Если год не кратен четырем, то есть первое выражение не является истинным, то логическое выражение не будет выполняться дальше, Python в этот момент остановится. Если же оно истинное, то выполнение логического выражения продолжится. Ну и мы получаем ответ. В данном случае 2017 год не является високосным. Что стоит отметить — это то, что эту задачку мы могли бы решить ещё короче, всего в две строчки, используя модуль стандартной библиотеки calendar. Как принято говорить, Python — это «батарейки включены», то есть это язык, который предоставляет очень много возможностей в своей стандартной библиотеке. Так что библиотеку языка ставят в пример многим другим языкам программирования. Соответственно, есть модуль «календарь», который мы можем импортировать, и внутри модуля календарь есть функция isleap, которая делает как раз то, что нам нужно. Мы, например, можем убедиться, что 1980-й год был високосным. Про импорты мы ещё с вами будем говорить в дальнейшем. В этом видео мы поговорили про логический тип в Python, тип bool, рассмотрели логические операторы, а также посмотрели на составные логические выражения.