книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
2.3. выражения if-elif-elseВыражение if–elif–else используется в случае выбора одной из нескольких альтернатив. Выражение начинается с части if, за которой следует часть elif, а завершается конструкция блоком else. Все эти части выражения должны содержать свои тела с правильными отступами. Кроме того, все инструкции if и elif должны включать в себя условия, результатом вычисления которых может быть либо True, либо False. При выполнении конструкции if–elif–else первой запускается проверка условия в блоке if. Если результатом будет True, выполнится тело этого блока, после чего будут пропущены все оставшиеся части выражения. В противном случае Python перейдет к анализу следующего условия – из блока elif. Если оно верно, будет, как и ожидается, выполнено тело этого блока с последующим пропуском остальных инструкций. Если же нет, Python продолжит проверять все условия до конца выражения. Если ни одно из них не даст истины, будет выполнено тело из блока else, после чего выполнение программы продолжится. Давайте расширим наш предыдущий пример, чтобы выполнялась проверка не только на ноль, но также на положительные и отрицательные значения. И хотя возможно решить эту задачу посредством выражений if и/или if–else, лучше всего подобные сценарии реализовывать при помощи конструкции if–elif–else, поскольку одно из трех условий должно выполняться в любом случае. # Запрашиваем значение у пользователя num = float(input("Введите число: ")) # Сохраняем подходящее значение в переменной result if num > 0: result = "Введено положительное число" elif num < 0: result = "Введено отрицательное число" else: result = "Введен ноль" # Отобразим результат print(result) При вводе пользователем положительного значения первое же условие даст результат True, а значит, будет выполнено тело этого блока, после чего программа продолжит выполнение с инструкции print. При вводе отрицательного значения первое условие даст результат False, а значит, начнутся проверки следующих условий по очереди. Второе условие окажется выполнено, в результате чего будет запущено тело этого блока, после чего программа продолжит выполнение с инструкции print. Наконец, если пользователь ввел нулевое значение, все блоки if и elif дадут False, а значит, будет выполнено тело блока else. После этого будет осуществлен вывод результата на экран. Мы видим, что в конструкции if–elif–else всегда будет выполняться только одно тело в зависимости от прописанных условий. 2.4. выражения if-elifНадо отметить, что блок else в конструкции if–elif–else является необязательным. Его присутствие гарантирует выполнение одного из блоков выражения в любом случае. Если этот блок отсутствует, это значит, что может не выполниться ни один из блоков. Это произойдет, если ни одно из условий в блоках не даст значения True. Вне зависимости от того, будет ли выполнено хоть одно тело в выражении if–elif, программа продолжит свое выполнение со следующей за последней частью elif инструкции. 2.5. вложенные выражения ifБлоки if, elif и else могут включать в себя любые выражения, включая другие блоки if, if–else, if–elif и if–elif–else. Если одно условное выражение появляется в теле другого, оно называется вложенным (nested). Следующий фрагмент кода иллюстрирует эту концепцию: # Запрашиваем у пользователя число num = float(input("Введите число: ")) # Сохраняем нужный нам результат if num > 0: # Определяем, какое прилагательное нам стоит использовать adjective = " " if num >= 1000000: adjective = " очень большое " elif num >= 1000: adjective = " большое " # Сохраняем в переменную положительные числа с правильным прилагательным result = "Это" + adjective + "положительное число" elif num < 0: result = "Это отрицательное" else: result = "Это ноль" # Выводим результат print(result) Программа начинается с запроса числа у пользователя. Если он ввел число, большее нуля, выполнится тело внешнего блока if. В нем мы сначала инициализируем переменную adjective пробелом. Затем запускается вложенная конструкция if–elif. Если пользователь ввел значение, превышающее или равное миллиону, присвоим переменной adjective строку " очень большое ". Если введенное значение укладывается в интервал от 1000 до 999 999, переменная adjective получит строковое значение " большое ". После этого сохраняем результат в переменную result. Блоки elif и else из внешней условной конструкции выполняться не будут, поскольку уже было выполнено тело блока if. Наконец, программа выводит результат на экран. Если бы пользователь ввел отрицательное значение или ноль, выполнился бы второй или третий блок внешней конструкции if–elif–else соответственно. В результате в переменной result оказалось бы другое значение, которое и было бы выведено на экран. |