СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Практическое занятие №43

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Практическое занятие №43»

Практическое занятие №43 (1И)

Тема: Понятие логических выражений и операций

Цель работы: формирование теоретических и практических навыков работы на языке программирования Python

Оборудование: компьютер с установленной операционной системой Windows, подключение к сети Интернет

Время работы 2 часа

Теоретические сведения

В логическом (булевом) типе данных имеется 2 значения: True («правда») и False («ложь»). Детальное описание этого типа дано в стандарте PEP-285.

Класс bool – это подкласс типа int (т.е. целых чисел). True и False – синглтон-объекты, которые по ходу выполнения программы никогда не меняют место расположения в памяти.

К логическим объектам можно применять математические операции. Есть 3 типа логических операторовnot («не»), or («или»), and («и»).

Операции с логическим типом данных обладают свойствами: коммутативность, дистрибутивность, ассоциативность; к ним применимо правило де Моргана.

Ход работы

Задача 1

Напишите функцию dislike_6(a), которая всегда возвращает True, если только не передается число 6 типа int или типа float (в данном случае она вернет «Только не 6!»).


def dislike_6(a):

if (type(a) is float or type(a) is int) and a == 6.0:

return 'Только не 6!'

return True


# Тесты

print(dislike_6(6.0))

print(dislike_6(6))

print(dislike_6('6'))

print(dislike_6('Хорошо'))

print(dislike_6([6, 6]))



Задача 2

Изучающий язык Python студент постоянно путается в свойствах логических операций (ассоциативность, дистрибутивность, коммутативность, правило де Моргана). Он решил написать функцию-подсказку help_bool(letter), которая принимает одну из 4 букв: к, а, д, м (соответствующую каждому свойству).

Результат выполнения: определенное правило работы в виде строки.
Если будет передано что-то иное, то вернется подсказка-строка с пояснением по каждому возможному аргументу.


def help_bool(letter=None):

if letter == 'к':

return 'A or B = B or A\nA and B = B and A'

elif letter == 'а':

return 'A or (B or C) == (A or B) or C == A or B or C\n' \

'A and (B and C) == (A and B) and C == A and B and C'

elif letter == 'д':

return 'A and (B or C) == (A and B) or (A and C) \nA or (B and C) == (A or B) and (A or C)'

elif letter == 'м':

return 'not(A or B) == not A and not B \nnot(A and B) == not A or not B\n'\

'not(A = B\nnot(not(A)) = A'

else:

return 'Возможные аргументы: к – Коммутативность, д – Дистрибутивность, а – Ассоциативность, ' \

'м – Теорема Де Моргана'


# Тесты

print(help_bool())

print(help_bool([2, 6]))

print(help_bool('к'))






Контрольные вопросы:

  1. В чем смысл дистрибутивности логических выражений?

  2. Какие объекты в Python всегда возвращают булево значение False?