if a > b: M = a else: M = b
Поскольку операция выбора максимального из двух значе-
ний нужна очень часто, в Python есть встроенная функция max,
которая вызывается так:
M = max( a, b )
Есть также и аналогичная функция min, которая выбирает ми-
нимальное (наименьшее) из двух или нескольких значений.
Если выбирается максимальное из двух чисел, можно ис-пользовать особую форму условного оператора в Python:
M = a if a > b else b
34 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
которая работает так же, как и приведённый выше условный оператор в полной форме: записывает в переменную M значе-ние a, если a > b, и значение b, если это условие ложно.
Неполная форма условного оператора
В приведенных выше примерах условный оператор записан в полной форме: в обоих случаях (как при истинном, так и при ложном условии) нужно выполнить некоторые действия.
Программа выбора максимального значения может быть написана иначе:
M = a
if b > a:
M = b
Здесь использован условный оператор в неполной форме, по-тому что в случае, когда условие ложно, ничего делать не требу-ется (нет слова else и блока операторов после него).
Программист написал программу для выбора наименьшего из двух чисел так:
if a < b:
M = a if b < a:
M = b
В каких случаях эта программа будет работать непра-вильно? Запишите правильную программу, используя один условный оператор в полной форме.
Можно ли в этой программе два условных оператора в неполной форме заменить на один оператор в полной форме? Почему?
if a < 5:
a = 5
if a > 10:
a = 10
Что делает эта программа?
35 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
*Напишите последовательность команд, с помощью которой можно поменять значения двух переменных.
Составной оператор
Часто при выполнении какого-то условия нужно выпол-нить сразу несколько действий. Например, в задаче сортировки значений переменных a и b по возрастанию нужно поменять местами значения этих переменных, если a > b:
if a > b:
temp = a a = b
b = temp
Здесь temp – это временная (вспомогательная) переменная (от
англ. temporary – временный). Все операторы, входящие в блок, сдвинуты на одинаковое расстояние от левого края. Начало и конец блока, который выполняется при истинном условии, оп-ределяется именно этими сдвигами. Поэтому операторные скоб-ки – специальные ограничители блоков (как, например, слова begin и end в языке Паскаль или фигурные скобки в С-
подобных языках) здесь не нужны.
Заметим, что в Python, в отличие от многих других языков программирования, есть множественное присваивание, которое позволяет выполнить такой обмен значительно проще:
a, b = b, a
Ветвления в других языках программирования
Знание хотя бы одного языка программирования позволяет понимать запись программы на многих других языках. Вот фрагменты программы, которая меняет местами значения двух переменных, на языках Паскаль (слева) и C++ (справа):
if a > b then begin if ( a > b ) {
temp := a; temp = a; a := b; a = b;
b := temp b = temp;
36 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Достарыңызбен бөлісу: |