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![](data:image/jpeg;base64,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)
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![](data:image/jpeg;base64,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)
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![](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAnACYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3DU9TttJs2ublsKOAByWPoB3Ned6n4z1S+dlgk+yw9lj+9j3b1+mKTxlqbX+tvCG/c23yKO27+I/XPH4CudHUfWvBxmMnKfJB2RxVarbsi8ms6oj7l1G6z15lY/oTzXR6N45uIpFh1P8AexHjzVGGX6gcEfr9a1vGtnaweHy8VvFG3mLyqAH+VecVlUlWwlRJSuTJypS3PcYpEniWSNgyMMhhyCKK4zwFqjSW8+nStnyvnjz/AHSeR+ePzor2qOIhUgpdzshNSjc5G/AXxDdCXGPtTbs9MbjnNd+J/COB8umZ/wCuaf4VzfjjSGtdSN/GuYLjG4jorgY/UDP1zXKDqPrXje0eGqSi43uzk5vZyaaue0am1gtoTqPkfZ8j/XAFc9utcj4kl8Otokw08WIucrt8pFDY3DPQemateMtSsbvQDHb3lvLJ5inakqsfyBrzuunHYpJ8iSd0XWqW0SOk8FLI2sTeX1Fuf/Qloro/BGjvZ2El5Ou2W4xtBHRB/j1/Kiqw+DbppsunTfKjp7m2hvLd4J41kjcbWVuhrhdT8ATJIz6dOroefLlOCPoQOfxooruxFCnVjeSNZ04y3MtPBmtM+028aj+8ZVx+hJ/Suj0XwNDaSLcahIs7ryI1HyD656/TgUUVz4fBUk7tXM4UYpnZAYFFFFeibn//2Q==)
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Достарыңызбен бөлісу: |