Хелпикс

Главная

Контакты

Случайная статья





«Условный оператор if»



Теоретическая часть

При решении задач важно реализовывать возможность выбора среди альтернативныхопераций на основе результатов проверки. В императивных языках программирования для этих целей используется оператор ветвления (условный оператор). В языке Pythonподобный оператор предусматривает не только возможность сделать выбор одной из двух альтернатив, но и предусматривает выполнение в зависимости от значения той илииной переменной одной из трех (или более) ветвей программы.

Общая форма оператора ветвления выглядит следующим образом:

if< условие1>:

    оператор1

elif< условие2>:

оператор2

else:

    оператор3

Части elseи elifявляются необаятельными. После части ifуказывается логическое условие, которое может быть истинным или ложным. Опишем случаи, когда выражение является истинным:

− Любое число, не равное 0, или непустой объект, а числа, равные 0, пустые объекты и значение None определяют ложь;

− Операции сравнения применяются к структурам данных рекурсивно;

− Операции сравнения возвращают True или False;

− Логические операторы and и or возвращают истинный или ложный объект-операнд.

Логическими операндами могут быть and (конъюнкция), or (дизъюнкция), not – отрицание. Равенство обозначается == (чтобы отличить знак равенства от оператора присвоения), а неравество! =. Также в Pythonможно записывать двойное условие, например 2< =a< =5, -10< v< =9.

Как видно из описания оператора ветвления, он может содержать в своем составе другие операторы, в том числе другие условные. Стоит обратить внимание, что после логического условия стоит двоеточие, для того чтобы показать, что далее идет блок выражений. Блок выражений записывается после отступа.

Рассмотрим работу оператора более подробно.

В самом простом случае оператор ветвления имеет вид:

if< условие1>:

    оператор1

Блок-схема работы данного оператора представлена на рисунке 55:

Рисунок 55 – Блок-схема условного оператора

В этом случае в случае истинности условия выполняется оператор1, а затем осуществляется выход из оператора (управление передается оператору, следующему за оператором if).

Приведем пример:

Пример 1.

a = int(input())

ifa< 0:

print('Ниже')

Результаты работы программы представлены ниже на рисунке 56:

 

Рисунок 56 – Результат работы программы

 

В данном примере в качестве условия используется сравнение a< 0. Если оно выполняется, то на экран выводится «Ниже». Если же условие ложно, то программа ничего не выполняет.

Пример 2.

a = int(input())

if (a < 0) and(a> =-3):

print('Ниже')

Результаты работы программы представлены ниже на Рисунок:

Рисунок 57– Результат работы программы

 

В данном примере условие составное: состоит из двух условий, объединенным операцией and (логическое и).

Рассмотрим далее более сложный вид оператора ветвления:

if< условие1>:

    опертор1

else:

оператор2

Обратите внимание на порядок отступов в формате оператора!

Блок-схема работы данного оператора представлена на рисунке 58:

Рисунок 58 – Блок-схема условного оператора

Если условие истинно, то далее выполняется оператор1, а в противном случае (если условие ложно), то выполняется оператор2. А далее управление переходит к оператору, которое следует за оператором ветвления.

Приведём примеры работы более сложной формы оператор ветвления.

Пример 3.

a = int(input())

b = int(input())

ifa+b> 10:

print('Yes')

else:

print('No')

Результаты работы программы представлены ниже на рисунке 59:

Рисунок 59 – Результат работы программы

В данном примере в случае истинности условия a+b> 10 выполняется оператор print('Yes'), а в противном случае – print('No').

Обратите внимание, что после условия и после части elseможно указывать несколько операторов, но тогда все они идут после отступа! Для сравнения рассмотрим два примера.

Пример 4. 1

a=10

b=15

c=3

ifa+b> 10:

print('Yes')

else:

print('No')

c=a+b

print(c)

Результат работы данной программы представлен на рисунке 60:

Рисунок 60 – Результат работы программы из примера 4. 1

Пример 4. 2

a=10

b=15

c=3

ifa+b> 10:

print('Yes')

else:

print('No')

c=a+b

print(c)

Результат работы данной программы представлен на рисунке 61:

Рисунок 61 – Результат работы программы из примера 4. 2

Как видим, результат работы программы отличаются, так как в примере 4. 2 оператор c=a+b выполняется в любом случае, так как стоит вне блока оператора ветвления.

Третья форма оператора ветвления выглядит следующим образом:

if< условие1>:

опертор1

elif< условие2>:

опертор2

else:

опертор3

Блок-схема работы данного оператора представлена на рисунке 62:

Рисунок 62 – Блок-схема условного оператора

При использовании данной формы можно проводить проверку нескольких условий – после if и после elif. Оператор после elseвыполняется в том случае, если не выполнилось условие 2 после части elif.

Рассмотрим пример использования данной формы оператора if.

Пример 5

a=10

if a < -5:

print('Yes')

elif -5 < = a < = 5:

print('Maybe')

else:

print('No')

Результат работы представлен на рисунке 63:

Рисунок 63 – Результат работы программы из примера 5

Пример 6. Написать программу вычисления стоимости покупки с учетом скидки. Скидка в 5% предоставляется в том случае, если стоимость покупки превысила 1000, а в 10% - если стоимость выше 3000 р.

Листинг программы представлен ниже:

s=int(input())

ifs< 1000:

print(s)

elif 1000< =s< 3000:

print(s*0. 97)

else:

print(s*0. 95)

Результаты работы программы представлены ниже на рисунке 64:

Рисунок 64 – Результат работы программы из примера 6

Еще раз обратимся к синтаксическим правилам языка Python.

В языке Python отсутствуют фигурные скобки, как в языке С/С++, илиразделители «begin/end», как в языке Pascal, окружающие блоки программного кода. Вместо этого принадлежность операторов к вложенному блокуопределяется по величине отступов. Так же операторы в языке Python обычно не завершаются точкой с запятой; обычно признакомконца инструкции служит конец строки с этой инструкцией.

Все составные операторы в языке Python оформляются одинаково: строка с заголовком завершается двоеточием, далее следуют одна или более вложенных инструкций, обычно с отступом относительно заголовка. Эти инструкции с отступами называются блоком(или иногда набором). Интерпретатор автоматически определяет границы блоков по величине отступов – т. е. по ширине пустого пространства слева от программного кода. Все инструкции, смещенные вправо на одинаковое расстояние, принадлежат к одному и тому же блоку кода.

В инструкции if предложения elif и else являются не только частями инструкции if, но и заголовками с собственными вложенными блоками. На Рисунок представлена схема с отступами для оператора if.

Рисунок 65 – Схема вложенных блоков

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.