Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чаплыгин А.Н. Учимся програмировать вместе с Пи...doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

§5.6. Альтернативные ветки программы (Chained conditionals)

Условный оператор if имеет расширенный формат, позволяющий проверять несколько независимых друг от друга условий и выполнять один из блоков, поставленных в соответствие с этими условиями. В общем виде оператор выглядит так:

if

ЛОГИЧЕСКОЕ УСЛОВИЕ 1

ПОСЛЕДОВАТЕЛЬНОСТЬ

ВЫРАЖЕНИЙ

_1

el

Lf ЛОГИЧЕСКОЕ УСЛОВИЕ

_2:

ПОСЛЕДОВАТЕЛЬНОСТЬ

ВЫРАЖЕНИЙ

_2

el

Lf ЛОГИЧЕСКОЕ УСЛОВИЕ

_3:

ПОСЛЕДОВАТЕЛЬНОСТЬ

ВЫРАЖЕНИЙ

_3

el

зе:

ПОСЛЕДОВАТЕЛЬНОСТЬ

ВЫРАЖЕНИЙ

N

Работает эта конструкция следующим образом. Сначала проверяется первое условие и, если оно истинно, то выполняется первая последовательность выражения. После этого поток выполнения переходит строке, которая следует после условного оператора (т.е. за последо­вательностью выражений N). Если первое условие равно False, то проверяется второе условие (следующее после el if), и в случае его истинности выполняется последователь­ность 2, а затем снова поток выполнения переходит к строке, следующей за оператором условия. Аналогично проверяются все остальные условия. До ветки программы else поток выполнения доходит только в том случае, если не выполняется ни одно из условий.

Ключевое слово el if происходит от англ. «else if» - «иначе если». Т.е. условие, которое следует после него проверяется только тогда, когда все предыдущие условия ложны.

Чтобы было понятнее, напишем небольшую программу, иллюстрирующую использова­ние условного оператора с альтернативными ветками.

choice = raw input(

Input your

choice,

please

(1 or 2) : ' )

if choice == "1":

functionl()

55

Ревизия: 170

Логические выражения, условия и рекурсия

elif choice == "2"

function2()

else:

print "Invalid

choice!"

print "Thank you."

Сначала программа просит пользователя ввести единицу или двойку, затем условный оператор проверяет введенное значение на равенство со строкой ' 1' (если не помните, функция raw_input() возвращает строковое значение). Если условие истинно, то вызывается функция functionl (), после чего программа выводит строку "Thank you. " и завершается; в противном случае значение переменной choice сравнивается со строкой ' 2 ': если условие выполняется, то вызывается функция function2 (), затем выводится строка "Thank you. " и программа завершается; иначе- программа выводит сообщение о том, что введенное значение некорректно, затем «благодарность» и завершается.

В англоязычной литературе такие разветвленные условные операторы обычно называют chained conditionals, т.е. цепочками условий.

Упражнение. Измените функцию compare (x, у) так, чтобы в ней использовался всего один оператор условия.