условие. Ветвления Требуется записать в переменную m наибольшее из значений переменных a и b. Сформулируйте алгоритм решения задачи в словесной форме.
Скачать 27.78 Kb.
|
Ветвления Требуется записать в переменную M наибольшее из значений переменных a и b. Сформулируйте алгоритм решения задачи в словесной форме. Например, для того, чтобы записать в переменную M максимальное (наибольшее) из значений переменных a и b, можно использовать оператор: if a > b: M = a else: M = b Если истинно (верно) условие, записанное после слова if, то выполняются все команды (также говорят «блок команд»), которые расположены до слова else. Если же условие после if ложно (неверно), выполняются команды, стоящие после else. Питон. Условия Операции сравненияКак правило, в качестве проверяемого условия используется результат вычисления одной из следующих операций сравнения (или величин логического типа): < — меньше. Условие верно, если первый операнд меньше второго. > — больше. Условие верно, если первый операнд больше второго. <= — меньше или равно. Условие верно, если первый операнд не больше второго. >= — больше или равно. Условие верно, если первый операнд не меньше второго. == — равенство. Условие верно, если два операнда равны. Обратите внимание, что просто знак равенства для сравнения двух значений использовать нельзя, так как он означает присваивание. != — неравенство. Условие верно, если операнды не равны. Если в блоке всего один оператор, иногда бывает удобно записать блок в той же строке, что и служебные слова if (else): if a > b: M = a else: M = b Поскольку операция выбора максимального из двух значений нужна очень часто, в Python есть встроенная функция max, которая вызывается так: M = max(a, b) Есть также и аналогичная функция min, которая выбирает минимальное (наименьшее) из двух или нескольких значений. Если выбирается максимальное из двух чисел, можно использовать особую форму условного оператора в Python: M = a if a > b else b Программист написал программу для выбора наименьшего из двух чисел так: if a < b: M = a if b < a: M = b В каких случаях эта программа будет работать неправильно? Запишите правильную программу, используя один условный оператор в полной форме. Можно ли в этой программе два условных оператора в неполной форме заменить на один оператор в полной форме? Почему? if a < 5: a = 5 if a > 10: a = 10 Что делает эта программа? Напишите последовательность команд, с помощью которой можно поменять значения двух переменных. Составной оператор Часто при выполнении какого-то условия нужно выполнить сразу несколько действий. Например, в задаче сортировки значений переменных a и b по возрастанию нужно поменять местами значения этих переменных, если a > b: if a > b: temp = a a = b b = temp Здесь temp – это временная (вспомогательная) переменная Вложенные условные операторы Например, пусть возраст Андрея записан в переменной ageA, а возраст Бориса – в переменной ageB. Нужно определить, кто из них старше. Одним условным оператором тут не обойтись, потому что есть три возможных результата: старше Анд-рей, старше Борис или оба одного возраста. Решение задачи можно записать так: if ageA > ageB: print( "Андрей старше" ) else: if ageA == ageB: print( "Одного возраста" ) else: print( "Борис старше" ) Если после else сразу следует еще один оператор if, мож-но применить так называемое «каскадное» ветвление с ключе-выми словами elif (сокращение от else-if). Если очередное условие ложно, выполняется проверка следующего условия и т.д. if ageA > ageB: print( "Андрей старше" ) elif ageA == ageB: print( "Одного возраста" ) else: print( "Борис старше" ) цепочке операторов if-elif-elif-… срабатывает первое истинное условие. Например, программа считает скидку cost = 1500 if cost < 1500: print( "Скидок нет." ) elif cost < 2000: print( "Скидка 2%." ) elif cost < 5000: print( "Скидка 5%." ) else: print( "Скидка 10%." ) выводит «Скидка 2%.», хотя условие cost < 5000 тоже выполняется. Что выведет эта программа при x = –3? x = 0? x = 123? if x >= 0: if x > 0: print( 1 ) else: print( 0 ) else: print( -1 ) Перепишите её, используя цепочку if-elif-else. Пример: Автопробег Рассмотрим задачу из предыдущего модуля. За день машина проезжает n километров. Сколько дней нужно, чтобы проехать маршрут длиной m километров? Данную задачу с использованием условной инструкции можно решить следующим образом: n = int(input()) m = int(input()) if m % n == 0: print(m // n) else: print(m // n + 1) Также эту задачу можно было решить и одной формулой: print((m + n - 1) // n) Задание Напишите программу, которая получает с клавиатуры три целых числа и находит наибольшее и наименьшее из них. Напишите программу, которая получает с клавиатуры номер месяца и выводит название соответствующего ему времени года или сообщение об ошибке. Напишите программу, которая получает трёхзначное число и определяет, есть ли в его записи одинаковые цифры (программа должна вывести ответ «да» или «нет»). |