Перейти к содержимому

Как в питоне обозначается импликация

  • автор:

Как применяется импликация в программировании?

Что тогда будет следованием? Какой код будет являться импликацией со значением 0 и 1?

Вот я написал такой код:

if (a and b) or not a: print('Yeeea')

Тут все понятно, что импликация будет верна, если :
A = False
A = True and B = True
в остальном случае не верна.

Или вот тоже код реализующий импликацию

def implies(a,b): if a: return b else: return True

Только вопрос был в том, как именно тот же Python использует импликацию в работе операторов if?
Ведь конструкция вложенных if будет верна, только в случае, когда оба условия верны, если первый if(который A) = False, то программа никогда не дойдет до условия B.

  • Вопрос задан более трёх лет назад
  • 9871 просмотр

Комментировать
Решения вопроса 0
Ответы на вопрос 2

В языках программирования импликация используется, как правило, неявно. Например, конструкция, предполагающая истинность условия B в данном участке программы:

if ( выражение A ) < if ( выражение B ) < сделать_что-то_полезное >else < сбой >; >

будет успешно выполняться тогда и только тогда, когда верна импликация A→B. В то же время эти условия можно спокойно написать в одной строке, объединив их оператором конъюнкции.

if ( выражение A ) and ( выражение B )

При стандартных опциях компилятора (Delphi, C++ Builder) проверка идет до тех пор, пока результат не станет очевидным, и если А ложно, то (А и В) ложно вне зависимости от В, и не нужно ставить еще один условный оператор.

//выражение A - ложно if ( выражение A ) < //Дальше проверка не идет . if ( выражение B ) < сделать_что-то_полезное >. >

В функциональных языках импликация может быть не только правилом вычислений, но и видом отношения между данными, то есть обрабатываться (в том числе и выполняться) и создаваться по ходу выполнения программы.

Логические выражения и операторы

Часто в реальной жизни мы соглашаемся с каким-либо утверждением или отрицаем его. Например, если вам скажут, что сумма чисел 3 и 5 больше 7, вы согласитесь, скажете: «Да, это правда». Если же кто-то будет утверждать, что сумма трех и пяти меньше семи, то вы расцените такое утверждение как ложное.

Подобные фразы предполагают только два возможных ответа – либо «да», когда выражение оценивается как правда/истина, либо «нет», когда утверждение оценивается как ошибочное/ложное. В программировании и математике если результатом вычисления выражения может быть лишь истина или ложь, то такое выражение называется логическим.

Например, выражение 4 > 5 является логическим, так как его результатом является либо правда, либо ложь. Выражение 4 + 5 не является логическим, так как результатом его выполнения является число.

На позапрошлом уроке мы познакомились с тремя типами данных – целыми и вещественными числами, а также строками. Сегодня введем четвертый – логический тип данных (тип bool ). Его также называют булевым. У этого типа всего два возможных значения: True (правда) и False (ложь).

>>> a = True >>> type(a) >>> b = False >>> type(b)

Здесь переменной a было присвоено значение True , после чего с помощью встроенной в Python функции type() проверен ее тип. Интерпретатор сообщил, что это переменная класса bool . Понятия «класс» и «тип данных» в данном случае одно и то же. Переменная b также связана с булевым значением.

В программировании False обычно приравнивают к нулю, а True – к единице. Чтобы в этом убедиться, можно преобразовать булево значение к целочисленному типу:

>>> int(True) 1 >>> int(False) 0

Возможно и обратное. Можно преобразовать какое-либо значение к булевому типу:

>>> bool(3.4) True >>> bool(-150) True >>> bool(0) False >>> bool(' ') True >>> bool('') False

И здесь работает правило: всё, что не 0 и не пустота, является правдой.

Логические операторы

Говоря на естественном языке (например, русском) мы обозначаем сравнения словами «равно», «больше», «меньше». В языках программирования используются специальные знаки, подобные тем, которые используются в математике: > (больше), < (меньше), >= (больше или равно),

Не путайте операцию присваивания значения переменной, обозначаемую в языке Python одиночным знаком «равно», и операцию сравнения (два знака «равно»). Присваивание и сравнение – разные операции.

>>> a = 10 >>> b = 5 >>> a + b > 14 True >>> a < 14 - b False >>> a >> a != b True >>> a == b False >>> c = a == b >>> a, b, c (10, 5, False)

В данном примере выражение c = a == b состоит из двух подвыражений. Сначала происходит сравнение ( == ) переменных a и b . После этого результат логической операции присваивается переменной c . Выражение a, b, c просто выводит значения переменных на экран.

Сложные логические выражения

Логические выражения типа kbyte >= 1023 являются простыми, так как в них выполняется только одна логическая операция. Однако, на практике нередко возникает необходимость в более сложных выражениях. Может понадобиться получить ответа «Да» или «Нет» в зависимости от результата выполнения двух простых выражений. Например, «на улице идет снег или дождь», «переменная news больше 12 и меньше 20».

В таких случаях используются специальные операторы, объединяющие два и более простых логических выражения. Широко используются два оператора – так называемые логические И (and) и ИЛИ (or).

Чтобы получить True при использовании оператора and , необходимо, чтобы результаты обоих простых выражений, которые связывает данный оператор, были истинными. Если хотя бы в одном случае результатом будет False , то и все сложное выражение будет ложным.

Чтобы получить True при использовании оператора or , необходимо, чтобы результат хотя бы одного простого выражения, входящего в состав сложного, был истинным. В случае оператора or сложное выражение становится ложным лишь тогда, когда ложны оба составляющие его простые выражения.

Допустим, переменной x было присвоено значение 8 ( x = 8 ), переменной y присвоили 13 ( y = 13 ). Логическое выражение y < 15 and x >8 будет выполняться следующим образом. Сначала выполнится выражение y < 15 . Его результатом будет True . Затем выполнится выражение x >8 . Его результатом будет False . Далее выражение сведется к True and False , что вернет False .

>>> x = 8 >>> y = 13 >>> y < 15 and x >8 False

В случае с оператором or второе простое выражение проверяется, если первое вернуло ложь, и не проверяется, если уже первое вернуло истину. Так как для истинности всего выражения достаточно единственного True , неважно по какую сторону от or оно стоит.

>>> y < 15 or x >8 True

В языке Python есть еще унарный логический оператор not , то есть отрицание. Он превращает правду в ложь, а ложь в правду. Унарный он потому, что применяется к одному выражению, стоящему после него, а не справа и слева от него как в случае бинарных and и or .

>>> not y < 15 False
>>> a = 5 >>> b = 0 >>> not a False >>> not b True

Число 5 трактуется как истина, отрицание истины дает ложь. Ноль приравнивается к False . Отрицание False дает True .

Практическая работа

  1. Присвойте двум переменным любые числовые значения.
  2. Используя переменные из п. 1, с помощью оператора and составьте два сложных логических выражения, одно из которых дает истину, другое – ложь.
  3. Аналогично выполните п. 2, но уже с оператором or .
  4. Попробуйте использовать в логических выражениях переменные строкового типа. Объясните результат.
  5. Напишите программу, которая запрашивала бы у пользователя два числа и выводила бы True или False в зависимости от того, больше первое число второго или нет.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

Таблицы истинности 3

Author24 — интернет-сервис помощи студентам

К сожалению, некоторые из операций Булевой алгебры не реализованы в Python.
Самые частые не стандартные операции это: импликация, строгая дизъюнкция и эквивалентность.

Обозначим их следующим образом:

импликация — ->;
строгая дизъюнкция — ^;
эквивалентность — ~.
Напишите программу, которая для введённого сложного логического высказывания строит таблицу истинности.

Формат ввода
Вводится логическое выражение от нескольких переменных.

Возможное содержание выражения:

Заглавная латинская буква — переменная;
not — отрицание;
and — конъюнкция;
or — дизъюнкция;
^ — строгая дизъюнкция;
-> — импликация;
~ — эквивалентность;
() — логические скобки.
Формат вывода
Выведите таблицу истинности данного выражения.

Примечание
Прежде, чем реализовывать новые операции, обратите внимание на их приоритет.
Рекомендуем воспользоваться знаниями полученными при решении задачи «Польский калькулятор».

Пример 1
Ввод

A -> B ~ C

Как обозначается импликация в питоне?

Знаешь ответ на вопрос? Напиши его и получи +2.5 руб. за каждый ответ. Выбирай игру, читай любой вопрос и пиши ответ. Платим каждый месяц на сотовый телефон или yoomoney (Яндекс Деньги). Правила здесь. С нами уже 2300+ игроков!

В питоне импликация обозначается с помощью оператора «=>».

Напишите, почему вы считаете данный ответ недопустимым:

Задайте любой вопрос искуственному интеллекту бесплатно в Telegram https://t.me/unlim_ai_robot. До нового года всем +30.000 токенов каждый день.

Напиши ответ и заработай
Деньги на новый год и праздники

  • Кредитные карты
  • Быстрые займы

Совкомбанк

Кред. лимит
Проц. ставка
Без процентов
8 800 200-66-96
sovcombank.ru
Лицензия: №963
39 256 заявок

Кред. лимит
Проц. ставка
Без процентов
до 111 дней
8 800 250-0-520
Лицензия: №2268
17 943 заявок

Кред. лимит
Проц. ставка
Без процентов
до 365 дней
8 800 2000 000
alfabank.ru
Лицензия: №1326
12 162 заявок
Смотреть все карты (9)

Сумма займа
Проц. ставка
Срок займа
До 30 дней
Кред. история
8-800-700-8706
27 881 заявок

Сумма займа
Проц. ставка
Срок займа
До 30 дней
Кред. история
8 800 775-54-54
webbankir.com
32 718 заявок

Сумма займа
Проц. ставка
Срок займа
До 168 дней
Кред. история
От 21 года
8-800-7000-197
lime-zaim.ru
16 537 заявок

В каком году был сухой закон?

Спрашивает Алиса

Сухой закон, который запрещал производство, продажу и потребление алкоголя, был введен в Соединенных Штатах Америки в 1920 году. Этот период, известный как "пробицион", продолжался до 1933 года, когда был отменен 21-м поправкой к Конституции США.

Будет ли человек паук через вселенные 2?

Спрашивает Алиса

На данный момент нет официальной информации о том, будет ли продолжение фильма "Человек-паук: Через вселенные". Однако, учитывая успех первой части и популярность персонажа Человека-паука, есть вероятность, что студия Sony Pictures Animation может выпустить вторую часть в будущем.

Как работает умный счетчик электроэнергии?

Спрашивает Алиса

Умный счетчик электроэнергии - это электронное устройство, которое используется для измерения и мониторинга потребления электроэнергии в доме или офисе. Он отличается от обычного счетчика электроэнергии тем, что имеет дополнительные функции и возможности связи с другими устройствами. Умные . Читать далее

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *