Перейти к содержанию

Логический тип


Логический тип данных и логические операторы очень часто используются во всех языках программирования, и Python не исключение. Поэтому этим инструментом необходимо уверенно владеть. К счастью - это не очень сложная для понимания тема. Формально правильно, но немного запутанно, об этом написано тут.

  1. Точно так же, как результат арифметической операции, например сложения (+) можно применить к операндам (например a, b): a + b, и присвоить какой-то переменной (например с): c = a + b, результат операции сравнения (например >) применяется к операндам (например те же a, b) a > b, и может быть присвоен какой-то переменной (например e): e = a > b.

  2. Точно так же, как арифметические операции могут быть выстроены в сложное выражение - в цепочку операторов: (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) и "поиграйтесь" исходными цифрами - количеством мальчиков, девочек и учителей в группе. Посмотрите как ведет себя ваш алгоритм и насколько верно он оценивает ситуацию в разных условиях.

Загрузка тренажера...

image image

Проверка

Загрузка викторины...