Условные и логические операторы
Пример программы
Условный оператор
Условный оператор
Условный оператор
Условная конструкция (if-else)
Операторы сравнения
Операторы сравнения
Операторы сравнения
Операторы сравнения
Цепочки сравнений
Задачи
Ответы на задачи
Логические операции
Операция and
Операция and
Таблица истинности для операции and
Операция or
Операция or
Таблица истинности для операции or
Операция and и or вместе
Операция not
Таблица истинности для операции not
Приоритет логических операций
Примечания
Решение задач вместе с тренером в среде программирования
Решение задач вместе с тренером в среде программирования. Ответы
Задача «Существует ли треугольник?»
Задача «Ладья»
Задача «Шоколадка»
Задача «Жизнь персонажа»
Задача «Жизнь персонажа»
Задача «Месяцы»
Задача «Месяцы»
Еще задачи
Задача «Принадлежность 3»
Задача «Високосный год»
Задача «Ход ладьи»
8.19M
Категория: ПрограммированиеПрограммирование

Условный оператор

1. Условные и логические операторы

2. Пример программы

print('Какой язык программирования мы изучаем?')
answer = input()
if answer == 'Python':
print('Верно! Мы ботаем Python =)')
print('Python - отличный язык!')
Программа считывает текст и
проверяет, если введенный текст
равен строке 'Python', то выводит
пользователю текст:
Верно! Мы ботаем Python =)
Python - отличный язык!

3.

4. Условный оператор

print('Какой язык программирования мы изучаем?')
answer = input()
if answer == 'Python':
print('Верно! Мы ботаем Python =)')
print('Python - отличный язык!')
Двоеточие (:) в конце строки сообщает, что дальше находится блок
команд
В блок входят все строки, расположенные с отступом
Если условие истинно, выполняется весь блок команд

5. Условный оператор

print('Какой язык программирования мы изучаем?')
answer = input()
if answer == 'Python':
print('Верно! Мы ботаем Python =)')
print('Python - отличный язык!')
else:
print('Не совсем так!')
В этой программе мы обрабатываем сразу два случая:
● если условие истинно (ввели 'Python'),
● и если условие ложно (ввели что угодно, кроме 'Python')

6. Условный оператор

print('Какой язык программирования мы изучаем?')
answer = input()
if answer == 'Python':
print('Верно! Мы ботаем Python =)')
print('Python - отличный язык!')
отступ
блок команд

7.

Отступы
В Python отступ – это неотъемлемая часть кода
Отступ означает небольшое смещение строки кода вправо
Отступ сообщает, где начинается и где заканчивается блок кода
Для отступа блоков кода используются 4 пробела

8. Условная конструкция (if-else)

• Проверяет истинно или ложно утверждение
• Истина – if, ложь – else
• Условие – вопрос с ответом «да» или «нет»
• Отступы

9. Операторы сравнения

Для проверки условия мы используем специальный символ: двойное
равенство (==):
print('Какой язык программирования мы изучаем?')
answer = input()
if answer == 'Python':
print('Верно! Мы ботаем Python =)')
print('Python - отличный язык!')
== это условный оператор сравнения
(проверка на равенство)

10. Операторы сравнения

Не путать:
оператор присваивания (=) VS условный оператор (==)
num = 1992
s = 'I love Python'
оператор присваивания (=)
придает переменным значения
if answer == 'Python':
if name == 'Gvido':
if temperature == 40:
условный оператор (==)
проверяет на равенство два
значения
Путаница с операторами == и = является одной из самых
распространенных ошибок в программировании

11. Операторы сравнения

В Python существует 6 основных операторов сравнения:
Выражение
Описание
Оператор
Описание
if x > 7
если x больше 7
>
больше
if x < 7
если x меньше 7
<
меньше
>=
больше либо равно
<=
меньше либо равно
if x >= 7
if x <= 7
если x больше либо
равно 7
если x меньше либо
равно 7
if x == 7
если x равен 7
==
равно
if x != 7
если x не равен 7
!=
не равно

12. Операторы сравнения

Программа может содержать несколько условных операторов:
num1 = int(input())
num2 = int(input())
if num1 < num2:
print(num1, 'меньше чем', num2)
if num1 > num2:
print(num1, 'больше чем', num2)
if num1 == num2:
print(num1, 'равно', num2)
if num1 != num2:
print(num1, 'не равно', num2)
Устно:
Что будет выведено, если:
num1 = 3, num2 = 7?

13. Цепочки сравнений

Операторы сравнения в Python можно объединять в цепочки:
age = int(input())
if 3 <= age <= 6:
print('Вы ребёнок')
if a == b == c:
print('числа равны')
else:
print('числа не равны')
код проверяет: находится ли
значение переменной age, в
диапазоне от 3 до 6
код проверяет: равны ли все три
переменные a, b, c друг другу
Цепочки сравнения – это фича Python

14. Задачи

1. Напишите программу, которая считывает одну строку. Если это строка «Python», программа выводит «ДА» в
противном случае программа выводит «НЕТ».
2. Напишите программу, которая определяет, состоит ли двузначное число, введенное с клавиатуры, из одинаковых
цифр. Если состоит то, программа выводит «ДА» в противном случае программа выводит «НЕТ».
Самостоятельно
3. Даны два целых числа. Выведите значение наибольшего из них. Если числа равны, выведите любое из них. Формат
входных данных: Вводятся два числа. Формат выходных данных: Выведите ответ на задачу.
4. Напишите программу, которая сравнивает пароль и его подтверждение. Если они совпадают, то программа
выводит: «Пароль принят», иначе: «Пароль не принят». Формат входных данных: На вход программе подаются две
строки. Формат выходных данных: программа должна вывести одну строку в соответствии с условием задачи.
Ввод
Вывод
5. Напишите программу, которая определяет наименьшее из двух чисел. Формат входных
данных: Вводятся два числа. Формат выходных данных: Выведите ответ на задачу.
qwerty
qwerty
Пароль
принят
Ввод
Вывод
qwerty
Qwerty
Пароль не
принят
7
17
7
98
5
5
6. Напишите программу, которая по введенному возрасту пользователя
сообщает, к какой возрастной группе он относится:
до 13 включительно – детство
Ввод
Вывод
от 14 до 24 – молодость
от 25 до 59 – зрелость
11
детство
от 60 – старость
27
зрелость

15. Ответы на задачи

1
word = input()
if word == 'Python'
print('ДА')
else:
print('НЕТ')
2 num = int(input())
last_digit = num % 10
first_digit = num // 10
# последняя цифра числа
# первая цифра числа
if last_digit == first_digit:
print('ДА')
else:
print('НЕТ')
Остальные задачи решаете
самостоятельно. Позже тренер покажет
решения со своего компьютера на
экране

16. Логические операции

Сложное условие состоит из нескольких условий
В Python есть три логических операции, которые позволяют создавать сложные условия:
and: логическое умножение, “и”
2. or: логическое сложение, “или”
3. not: логическое отрицание, “не”
1.

17. Операция and

Предположим мы хотим написать программу для учеников от двенадцати лет, которые учатся
по крайней мере в 7 классе ( в 7 классе или выше: 8, 9, 10, 11)
age = int(input())
grade = int(input())
if age >= 12 and grade >= 7:
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Блок выполняется только при
выполнении обоих условий
одновременно!
Мы объединили два условия при помощи операции and

18. Операция and

Операция and может объединять произвольное количество условий:
age = int(input(‘Сколько вам лет?’))
grade = int(input(‘В каком классе вы учитесь?’))
city = input(‘В каком городе вы живете?’)
if age >= 12 and grade >= 7 and city == 'Москва':
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Устно: прокомментируйте, какие
условия тут закодированы?
Задание в коде: Придумать код с
операцией and
Мы объединили три условия при помощи операции and

19. Таблица истинности для операции and

Операция and возвращает истину когда оба выражения истинны
a
b
a and b
False
False
False
False
True
False
True
False
False
True
True
True

20. Операция or

Операция or также применяется для объединения условий
city = input()
if city == 'Москва' or city == 'Уфа':
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Блок выполняется в случае если хотя
бы одно из условий выполняется!
Мы объединили два условия при помощи операции or

21. Операция or

Операция or может объединять произвольное количество условий:
city = input(‘В каком городе ты живешь?’)
if city == 'Москва' or city == ‘Санкт-Петербург' or city == ‘Екатеринбург':
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Мы объединили три условия при помощи операции or

22. Таблица истинности для операции or

Операция or возвращает ложь когда оба выражения ложны
a
b
a or b
False
False
False
False
True
True
True
False
True
True
True
True
Задание в коде: придумать
код с операцией or
Для того чтобы выражение or было истинным, требуется, чтобы хотя бы
одно условие оператора or было истинным. При этом не имеет
значения, истинным или ложным является второе выражение.

23. Операция and и or вместе

Мы можем использовать обе логические операции одновременно:
age = int(input(‘Сколько вам лет?:’))
grade = int(input(‘В каком классе вы учитесь?:’))
city = input(‘В каком городе вы живете?:’)
if age >= 12 and grade >= 7 and (city == 'Москва' or
city == ‘Санкт-Петербург' or city == 'Тула'):
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Устно: прокомментируйте,
какие условия тут
закодированы?
Задание в коде: придумать
аналогичный код

24. Операция not

Операция not позволяет инвертировать результат логического выражения:
age = int(input(‘Сколько вам лет?:’))
if not (age < 12):
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
age = int(input(‘Сколько вам лет?:’))
if age >= 12:
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Устно: прокомментируйте,
какие условия тут
закодированы? В чем
разница между этими двумя
условиями?
Мы поместили скобки вокруг выражения age < 12 для того, чтобы было чётко видно,
что операция not применяется к значению выражения age < 12, а не только к
переменной age

25. Таблица истинности для операции not

a
not a
False
True
True
False
age = int(input(‘Сколько вам лет?:’))
grade = int(input(‘В каком классе вы учитесь?:’))
city = input(‘В каком городе вы живете?:’)
if age >= 12 and grade >= 7 and (city == 'Москва' or
city == ‘Санкт-Петербург' or city == 'Тула'):
print('Доступ разрешен.')
else:
print('Доступ запрещен.')
Задание в коде:
поставьте везде not и
прокомментируйте, как
поменялись условия?

26. Приоритет логических операций

Операция
Приоритет
not
0
and
1
or
2
сначала отрицание not
далее логическое умножение and
далее логическое сложение or
Для явного указания порядка выполнения логических
операций мы используем скобки

27. Примечания

Частой ошибкой является путаница логических and и or:
if x > 1 and x < 100:
if x > 1 or x < 100:
Другой частой ошибкой является код:
if age >= 7 and <= 9:
if age >= 7 and age <= 9:
В Python есть способ для проверки принадлежности диапазону:
if 7 <= age <= 9:

28. Решение задач вместе с тренером в среде программирования

1. Напишите программу, которая определяет, является ли
заданное число трехзначным.
2. Напишите программу, которая проверяет, что все три цифры
трехзначного числа различны.
3. Напишите программу, которая по координатам точки не
лежащей на осях координат, определяет номер координатной
четверти в которой она находится
2 четверть
1 четверть
3 четверть
4 четверть

29. Решение задач вместе с тренером в среде программирования. Ответы

1
2
num = int(input())
if 100 <= num <= 999:
print('Число является трехзначным')
else:
print('Число не является трехзначным')
num = int(input())
d3 = num % 10
d2 = num % 100 // 10
d1 = num // 100
if d3 != d2 and d3 != d1 and d2 != d1:
print('Цифры различны')
else:
print('Цифры не различны')
3
x = int(input())
y = int(input())
if x > 0 and y > 0:
print('1 четверть')
if x < 0 and y > 0:
print('2 четверть')
if x < 0 and y < 0:
print('3 четверть')
if x > 0 and y < 0:
print('4 четверть')
Обратите внимание, никакие два из
четырех условий не могут быть
истинными одновременно

30. Задача «Существует ли треугольник?»

Даны три натуральных числа A, B, C. Определите, существует ли треугольник с такими сторонами. Если треугольник
существует, выведите строку YES, иначе выведите строку NO.
Треугольник — это три точки, не лежащие на одной прямой.
Формат входных данных
Вводятся три числа.
Формат выходных данных
Выведите ответ на задачу.
Sample Input:
3
4
5
Sample Output:
YES
Ввод
Вывод
3
4
5
YES

31. Задача «Ладья»

Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите,
может ли ладья попасть с первой клетки на вторую одним ходом.
Формат входных данных
Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для
первой клетки, потом для второй клетки.
Формат выходных данных
Программа должна вывести YES, если из первой клетки ходом ладьи можно попасть во вторую или NO в противном
случае.
Sample Input:
3
3
3
8
Ввод
Sample Output:
YES
3
Вывод
3
3
8
YES

32. Задача «Шоколадка»

Шоколадка имеет вид прямоугольника, разделенного на N×M долек. Шоколадку можно один раз разломить по
прямой на две части. Определите, можно ли таким образом отломить от шоколадки ровно K долек.
Формат входных данных
Программа получает на вход три числа: N, M, K
Формат выходных данных
Программа должна вывести одно из двух слов: YES или NO.
Sample Input:
3
4
6
Sample Output:
YES
Ввод
Вывод
3
4
6
YES

33. Задача «Жизнь персонажа»

Николай написал функцию is_alive(health), которая проверяет
здоровье персонажа в игре. Если оно равно или меньше нуля, то
функция возвращает False, в противном случае True. К
сожалению, функция не работает, так как ученик допустил в ней
ряд ошибок. Исправьте их и проверьте работоспособность
программы (в качестве аргумента всегда передается число).
def is_alive(health):
____if:
____health < 0
_______False
____else:
_______return true

34. Задача «Жизнь персонажа»

Решение:
В функции Николая есть ряд ошибок:
- True – пишется с большой буквы
- проверка здоровья должна писаться после выражения if до двоеточия и включать в себя
нулевое значение
- в теле оператора if значение False должно возвращаться, а не просто объявляться.
def is_alive(health):
if health <= 0:
return False
else:
return True
# Тесты
print(is_alive(122))
print(is_alive(0))
print(is_alive(-1))

35. Задача «Месяцы»

Составьте функцию season_events(number_of_month), которая
принимает номер месяца вашего рождения и в зависимости от
сезона печатает на выходе следующее:
Вы родились в <НАЗВАНИЕ_МЕСЯЦА>. <ОПИСАНИЕ_СОБЫТИЙ>.
В качестве ОПИСАНИЯ_СОБЫТИЙ будет характеристика сезона:
- для зимы За окном падал белый снег,
- для весны Птицы пели прекрасные песни,
- для лета Солнце светило ярче чем когда-либо,
- для осени Урожай был невероятным.
Важно учесть, что пользователи могут ввести любой тип данных
в качестве аргумента (не попадитесь на этом: требуется ввести
реальный номер месяца).

36. Задача «Месяцы»

Решение:
Для выведения на печать каждого месяца удобно
воспользоваться словарем. Можно, конечно,
использовать if / else конструкцию, но в этом
случае она неразумно увеличивает объем кода. А
вот для четырех сезонов вполне годится
условное выражение.
months = {
1: 'Январе',
2: 'Феврале',
3: 'Марте',
4: 'Апреле',
5: 'Мае',
6: 'Июне',
7: 'Июле',
8: 'Августе',
9: 'Сентябре',
10: 'Октябре',
11: 'Ноябре',
12: 'Декабре'
}
def season_events(number_of_month):
if not isinstance(number_of_month, int) and 1 <=
number_of_month <= 12:
print('Требуется ввести реальный номер месяца')
return
if number_of_month in range(3, 6):
print(f'Вы родились в {months[number_of_month]}. Птицы
пели прекрасные песни')
elif number_of_month in range(6, 9):
print(f'Вы родились в {months[number_of_month]}.
Солнце светило ярче чем когда-либо')
elif number_of_month in range(9, 12):
print(f'Вы родились в {months[number_of_month]}. Урожай
был невероятным')
else:
print(f'Вы родились в {months[number_of_month]}. За
окном падал белый снег')
# Тесты
season_events(33)
season_events('wq')
season_events(1)
season_events(7)
season_events(10)
season_events(5)

37. Еще задачи

38. Задача «Принадлежность 3»

Напишите программу, которая принимает целое число x и
определяет, принадлежит ли данное число указанным
промежуткам.
Ввод
Вывод
-15
YES
2
NO
10
YES

39. Задача «Високосный год»

Напишите программу, которая определяет, является ли год с
данным номером високосным.
Год является високосным, если
Ввод
Вывод
2020
YES
2009
NO
его номер кратен 4, но не кратен 100
или если он кратен 400

40. Задача «Ход ладьи»

Даны две различные клетки шахматной доски. Напишите
программу, которая определяет, может ли ладья попасть с первой
клетки на вторую одним ходом.
Ввод
Вывод
4
5
4
2
YES
English     Русский Правила