Логический тип
Логический тип данных и логические операторы очень часто используются во всех языках программирования, и Python не исключение. Поэтому этим инструментом необходимо уверенно владеть. К счастью - это не очень сложная для понимания тема. Формально правильно, но немного запутанно, об этом написано тут.
-
Точно так же, как результат арифметической операции, например сложения (+) можно применить к операндам (например a, b): a + b, и присвоить какой-то переменной (например с): c = a + b, результат операции сравнения (например >) применяется к операндам (например те же a, b) a > b, и может быть присвоен какой-то переменной (например e): e = a > b.
-
Точно так же, как арифметические операции могут быть выстроены в сложное выражение - в цепочку операторов: (a + b) / 3 (при этом они применяются в соответствии с порядком применения операций), точно так же логические операции могут быть выстроены в цепочку: (a > b) AND (c >= 0)
Для закрепления понимания давайте решим задачу.
На майских праздниках ученики какой-то школы собираются выехать на природу. Количество мальчиков в группе обозначим boys, количество девочек обозначим girls, количество сопровождающих учителей - teachers. Из опыта прошлых поездок нам известно правило, что если мальчиков едет больше чем девочек и общее количество детей больше 10 - то они всегда играют в футбол.
Как записать выражение, которое будет определять - будут они играть в футбол или нет?
Решаем: обозначим переменной footbal результат нашего выражения. Если эта переменная будет равна True, то они идут играть в футбол, если False - то не идут. Внимательно читаем условие игры в футбол:
- "если мальчиков будет больше девочек" - записываем: boys > girls
- "общее количество детей больше 10" - записываем: (boys + girls) > 10
- и видим между этими утверждениями союз "и" - то есть эти условия должны выполниться одновременно оба - записываем итоговое выражение: (boys > girls) AND ((boys + girls) > 10)
- и не забываем результат вычисления этого выражения присвоить переменной footbal:
footbal = (boys > girls) AND ((boys + girls) > 10)
Теперь, подставляя разные количества мальчиков и девочек в группе Вы всегда будете в переменной footbal результат вычисления логического выражения и знать - будет игра в футбол или нет)
Для самостоятельного решения:
Из прошлого опыта нам известно, что если в группе было больше мальчиков, чем девочек и сопровождающих учителей было больше двое или больше, то мальчики уговаривали девочек пойти плавать в реке, невзирая на еще прохладную воду, и учителя разрешали им это сделать, так как могли обеспечить необходимую безопасность. Запишите логическое выражение, которое будет иметь True если конфигурация группы приведет к купанию в реке и False в обратном случае. Результат выражения присвойте переменной swimming.
После того, как добьетесь верной работы вашего логического выражения (получите положительную оценку работы вашего алгоритма от системы), раскомментируйте последнюю строку (уберите знак # перед print) и "поиграйтесь" исходными цифрами - количеством мальчиков, девочек и учителей в группе. Посмотрите как ведет себя ваш алгоритм и насколько верно он оценивает ситуацию в разных условиях.

Проверка