Чтобы решить задачу, давайте внимательно изучим условие в условном операторе if. У нас есть фрагмент программы:
a = 10
b = 5
if a > 1 ??? a < b:
a = a - 7
else:
a = a + 7
Нам необходимо понять, какую логическую операцию мы можем поставить вместо ???, чтобы после выполнения программы значение переменной a стало равно 17.
Шаг 1: Изучение условий в if
Условие записано как
if a > 1 ??? a < b. Это означает, что нам нужно получить логическое значение (True или False) на основе значенийaиb.В текущий момент:
a = 10b = 5
Шаг 2: Определение возможных сравнений
Теперь рассмотрим:
- Условие
a > 1всегда будет истинным (True), так как 10 больше 1. - Условие
a < bбудет ложным (False), так как 10 не меньше 5.
Шаг 3: Определение общей структуры условия
Если мы объединим два условия логической операцией, нам нужно получить такое условие, при котором if сработает по-разному:
Используя операцию AND (
and): Условие будет истинно только если оба условия истинны. В этом случаеa < bбудет ложным, и в результате блокifне выполнится, переменнаяaбудет увеличена на 7.Используя операцию OR (
or): Условие будет истинно, если хотя бы одно из условий истинно. Посколькуa > 1всегда истинно, выполняется блокif, иaуменьшится на 7.
Шаг 4: Теперь, чтобы значение a стало равно 17, нам нужно увеличить его
Если if блок выполняется, то a уменьшается на 7:
- Если
ifсработает иaстанет 3, оно не может стать 17.
Если блок else сработает:
a = 10и послеa + 7, мы получимa = 17.
Заключение
Таким образом, чтобы в if блок не сработал и произошел переход к else, мы можем использовать or, чтобы в if блок не входить.
Таким образом, правильная замена для ???:
if a > 1 or a < b:
В результате, после вызова оператора else, переменная a будет равна 17 после выполнения программы.