Что такое условный оператор в python
Перейти к содержимому

Что такое условный оператор в python

  • автор:

Условные операторы

Программа может выполняться постепенно: строка за строкой, выражение за выражением от начала и до конца, не пропуская ни единой строки кода. Но такое в реальности происходит редко. Зачастую необходимо ввести вариативность, чтобы при выполнении определенного условия, происходило одно, а при его невыполнении – другое. Так применяются условные операторы.

Определение

Условные операторы в Python 3 иногда называют операторами ветвления. Они созданы, чтобы программа могла выбрать, какой инструкции стоит следовать при определенном значении заданной переменной. Условные операторы состоят из заголовка и тела. Заголовок – это сама конструкция и то, что стоит рядом с ним (не в фигурных скобках в других языках программирования или перед двоеточием в Python). Тело – то, что написано после двоеточия. Чтобы программа поняла, что код после него является вложенным, необходимо обязательно сделать отступ в виде четырех пробелов. Обычно они ставятся автоматически, если пользователь работает в специально созданной среде программирования.

Заметим, что пользоваться клавишей Tab для создания отступа крайне нежелательно.

Ситуаций, в которых можно было бы применить условный оператор, великое множество. К ним, например, относится:

  • Определение, сдал ли студент экзамен. При количестве верных ответов 10 из 15 – сдал, если меньше – не сдал;
  • Выяснение размера скидки. Если купил 10 товаров – скидка 10%, если меньше – скидка не предоставляется.

Оператор if

С английского название этого оператора переводится, как «если». То есть он задает условие. После данного оператора записывается само выражение. Если оно оказывается истинным, то программа переходит к выполнению инструкции, заданной в указанном операторе. Выражение считается истинным, когда оно:

  • не равно нулю;
  • не является пустым;
  • является логическим

Для ясности рассмотрим пример использования if — условия в Python 3:

if 3: print("Привет 3")

На экране перед пользователем появится запись: Привет 3.

a = 6 if a == 6: print("Привет 2")

На дисплее компьютера отобразится: Привет 2.

Также можно задать условие формулой или условным выражением:

a = 5 if a > 2: print("Привет 3")

Переменная равна 5, условие, чтобы она была больше 2. Оно истинное, поэтому перед нами появится: Привет 3.

Еще более сложный вариант с несколькими переменными:

a = 0 b = 34 c = 10 if c < 100: a = b + c print(a)

Поскольку с действительно меньше 100, а станет равным 44, и именно это число появится на дисплее при выполнении данного кода. Если бы с изначально было большее 100, например, 110, то на экране бы отобразился 0, переменная а просто не изменилась бы вообще.

Оператор else

Иногда программе нужно указать, что делать, если условие оказывается ложным. Для этого задается новый набор инструкций и используется конструкция if – else. Кстати, стоит запомнить, что в else не может быть никакого логического выражения. Также невозможна и ситуация, при которой выполнятся обе ветви (и if, и else).

a = 7 if a > 5: print("Да") else: print("Нет")

При выполнении данного кода на компьютере появится: Да. Это происходит, потому что 7 действительно больше заданной в условии цифры 5.

Посмотрим, что же случится, если условие станет ложным. Возьмем тот же код, но изменим переменную а.

a = 3 if a > 5: print("Да") else: print("Нет")

Очевидно, что перед пользователем появится слово «Нет», поскольку 3 не больше 5, а меньше.

product1 = 30 product2 = 23 if product1+ product2 > 70 : print("70 рублей не хватит") else: print("Денег хватает, все оплачено")

В данном случае программист увидит запись: Денег хватает, все оплачено, поскольку 30 + 23 = 53, а это меньше чем 70.

Оператор elif и конструкция if – elif – else

Вообще elif примерно расшифровывается, как else + if. Чтобы можно было реализовать программу, которая выбирала бы из нескольких альтернативных вариантов, используется указанная конструкция.

Рассмотрим код, в котором имеется несколько условий:

if balance < 0: print("Баланс ниже нуля, положите деньги на счет, чтобы Вам не выписали штраф") elif balance == 0: print("Баланс равен нулю, скорее внесите деньги на счет") else: print("Ваш баланс выше нуля, все хорошо")

Так, программа может рассмотреть варианты с тремя условиями. И если переменная balance будет равна 150, то перед пользователем появится надпись: Ваш баланс выше нуля, все хорошо.

Оператор elif позволяет упростить код. Сделать его легче читаемым. Позволяет избежать написание несколько условий if в Python.

Тернарный оператор

Иногда для сокращения записи используется так называемый тернарный оператор, благодаря ему код набирается в одну строку. Посмотрим на пример того, как можно записать условие Python в одну строку:

is_happy = True state = "happy" if is_happy else "not happy"

Чтобы не расписывать в несколько строк оператор if, просто используем сжатый вариант.

Конструкция switch – case

Данная инструкция в Python не используется. Вместо этого можно применять конструкции с несколькими elif. Например, программист хочет написать код, чтобы программа ставила оценку за пройденный студентами тест. При этом оценок может быть несколько. Тогда можно оформить так:

if grade >= 50: print("Оценка 5 с плюсом") elif grade >= 45: print("Оценка 5") elif grade >= 35: print("Оценка 4") elif grade >= 25: print("Оценка 3") else: print("Тест провален")

В этом случае значение переменной grade будет сравниваться со всеми условиями подряд. Однако когда условие станет истинным, выполнение кода остановится и на экране появится сообщение об оценке. Например, если grade равен 30, то на дисплей будет выведена надпись: Оценка 3; если же переменная будет ниже 25, то пользователь увидит: Тест провален.

Если начинающий программист успешно владеет условными конструкциями, это существенно облегчает написание программ и позволяет точнее обозначать их действия. Для усложнения можно создавать целые комбинации операторов, а также объединять их с помощью циклов.

Условные операторы в Python

Условные операторы — (условная инструкция, оператор ветвления) — конструкция языка программирования, обеспечивающая выполнение определённой команды (набора команд) только при условии истинности некоторого логического выражения, либо выполнение одной из нескольких команд (наборов команд) в зависимости от значения некоторого выражения. Существует две основные формы условных операторов: условный оператор if и оператор многозначного выбора elif . [1] А также оператор "else", который определяет выполнение программы при несоблюдении условий оператором if / elif .

Условные операторы if, elif, else

И так есть следующие операторы, которые и определяют выполнения определённых условий в программировании на Python. Дословный перевод с английского этих операторов даёт конкретное их назначение:

  • if - если;
  • elif (от else if) - если ещё;
  • else - иначе.

Теперь давайте приведём пример, как эти операторы можно использовать, создадим небольшую программку, которая будет нам сообщать какой сегодня день в зависимости от температуры:

temperature = 30 # создадим переменную, в которой будем устанавливать температуру, установим 30 градусов if temperature > 25: # прописываем условие, которое определяет, какой сегодня день, в данном случае указываем, что если температура больше 25 градусов, то программа выведет сообщение, что сегодня жарко print("Сегодня очень жаркий день") # Выводим результат else: # иначе выводим, что день не очень жаркий print("Сегодня не очень жаркий день") 

Теперь если поменять значение переменной "temperature" ниже 25 градусов, то будет выводить сообщение о не очень жарком дне.

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

И так, для того, чтобы вводить данные в Python, нужно использовать оператор input() , то есть нам необходимо сделать переменную и вставить в неё функцию ввода данных.

# вводим значения и операцию над ними first_number = int(input("Введите первое значение: ")) # Создаём переменную для первого числа, конвертируем значение в число int() operation = input("Вводим операцию: ") # Переменная для ввода арифметической операции second_number = int(input("Введите второе значение: ")) # Создаём переменную для второго числа, конвертируем значение в число int() # Логика операций if operation == "*": # Если выбрали операцию умножения, то выполняем соответствующее арифметическое действие result = first_number * second_number # создаём переменную для результата и прописываем умножение двух введённых чисел elif operation == "+": # или если же выбрали операцию сложения, то выполняем соответствующее арифметическое действие result = first_number + second_number # и также прописываем для переменной результата соответствующее арифметическое действие elif operation == "-": # для вычетания result = first_number - second_number elif operation == "/": # для деления result = first_number / second_number # Выводим результат print(first_number, operation, second_number, "=", result) 

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

Примечание

Вот таким способом мы можем использовать условные операторы, их применение очень разнообразно при создании игр, приложениях и так далее. Здесь мы затронули лишь основы, но по мере изучения Python будем выкладывать другие статьи, в которых мы будем применять их. Ваши комментарии, вопросы, дополнения можно оставить на странице обсуждения. Также можно посмотреть видео этого материала на моём канале на YouTube.

Другие статьи о Python

Язык программирования Python

  • Операции со строкой
  • Операции со списками
  • Дополнительные операции со списками
  • Операции со словарями
  • Циклы
  • Циклы со списками
  • Дополнительные операции со словарями
  • Ввод данных
  • Условные операторы
  • Циклы со словарями
  • Функции
  • Классы
  • Работа с файлами в Python
  • Тестирование кода в Python

Ветвление. Условный оператор

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

Однако чаще в программах бывает не так. При выполнении кода, в зависимости от тех или иных условий, некоторые его участки могут быть опущены, в то время как другие – выполнены. Иными словами, в программе может присутствовать ветвление, которое реализуется условным оператором – особой конструкцией языка программирования.

Проведем аналогию с реальностью. Человек живет по расписанию. Можно сказать, расписание – это алгоритм для человека, его программный код, подлежащий выполнению. В расписании на 18.00 стоит поход в бассейн. Однако экземпляр биоробота класса Homo sapiens через свои рецепторы-сенсоры получает информацию, что воду из бассейна слили. Разумно было бы отменить занятие по плаванию, то есть изменить ход выполнения программы-расписания. Одним из условий посещения бассейна должно быть его функционирование, иначе должны выполняться другие действия.

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

if логическое_выражение

Перевести на человеческий язык можно так: если логическое выражение возвращает истину, то выполняются выражения внутри фигурных скобок; если логическое выражение возвращает ложь, то код внутри фигурных скобок не выполняется. С английского "if" переводится как "если".

Конструкция if логическое_выражение называется заголовком условного оператора. Выражения внутри фигурных скобок – телом условного оператора. Тело может содержать как множество выражений, так и всего одно.

Пример использования условного оператора в языке программирования Python:

if n  100: a = a + b

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

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

Инструкция if в интерпретаторе Python: отступы

Нахождение в теле условного оператора здесь обозначается тремя точками. При создании файла со скриптом таких точек быть не должно, как и приглашения >>> .

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

Данный пример вырван из контекста и сам по-себе не является рабочим. Полная версия программы могла бы выглядеть так:

a = 50 b = 10 n = 98 if n  100: a = a + b print(a)

Последняя строчка кода print(a) уже не относится к условному оператору, что обозначено отсутствием перед ней отступа. Она не является вложенной в условный оператор, значит, не принадлежит ему.

Поскольку переменная n равна 98, а это меньше 100, то a станет равной 60. Это значение будет выведено на экран. Если переменная n изначально была бы связана, например, со значением 101, то на экран было бы выведено 50. Потому что при n , равной 101, логическое выражение в заголовке условного оператора вернуло бы ложь. Значит, тело не было бы выполнено, и переменная a не изменилась бы.

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

Основная ветка программы выполняется всегда, а вложенный код лишь тогда, когда в темно-зеленой строчке, обозначающей заголовок условного оператора, случается истина.

Для небольших программ иногда чертят так называемые блок-схемы, отражающие алгоритм выполнения. В языке блок-схем различные части кода обозначаются своими фигурами. Так блоку последовательно выполняемых действий соответствует прямоугольник, ветвлению – ромб. Для кода выше блок-схема может выглядеть так:

Блок-схема оператора if

Условный оператор может включать не одну ветку, а две, реализуя тем самым полноценное ветвление.

Блок-схема конструкции if-else

В случае возврата логическим выражением False поток выполнения программы не возвращается сразу в основную ветку. На случай False существует другой вложенный код, отличный от случая True . Другими словами, встретившись с расширенной версией условного оператора, поток выполнения программы не вернется в основную ветку, не выполнив хоть какой-нибудь вложенный код.

В языках программирования разделение на две ветви достигается с помощью добавления блока else, получается так называемое if–else (если-иначе). Синтаксис выглядит примерно так:

if логическое_выражение < выражение 1; выражение 2; … >else

Если условие при инструкции if оказывается ложным, то выполняется блок кода при инструкции else . Ситуация, при которой бы выполнились обе ветви, невозможна. Либо код, принадлежащий if , либо код, принадлежащий еlse . Никак иначе. В заголовке else никогда не бывает логического выражения.

Пример программы с веткой else на языке Python:

tovar1 = 50 tovar2 = 32 if tovar1 + tovar2 > 99: print("99 рублей недостаточно") else: print("Чек оплачен") 

Следует иметь в виду, что логическое выражение при if может выглядеть нестандартно, то есть не так просто, как a > b и тому подобное. Там может стоять просто одна переменная, число, слово True или False , а также сложное логическое выражение, когда два простых соединяются через логически and или or .

a = ? if a: a = 1

Если вместо знака вопроса будет стоять 0, то с логической точки зрения это False , значит выражение в if не будет выполнено. Если a будет связано с любым другим числом, то оно будет расцениваться как True , и тело условного оператора выполнится. Другой пример:

a = 5 > 0 if a: print(a)

Здесь a уже связана с булевым значением. В данном случае это True . Отметим, что в выражении a = 5 > 0 присваивание выполняется после оператора сравнения, так что подвыражение 5 > 0 выполнится первым, после чего его результат будет присвоен переменной a . На будущее, если вы сомневаетесь в последовательности выполнения операторов, используйте скобки, например так: a = (5 > 0) .

if a > 0 and a  b: print(b - a)

Тут, чтобы вложенный код выполнился, a должно быть больше нуля и одновременно меньше b . Также в Питоне, в отличие от других языков программирования, позволительна такая сокращенная запись сложного логического выражения:

if 0  a  b: print(b - a)

Практическая работа

  1. Напишите программу, которая просит пользователя что-нибудь ввести с клавиатуры. Если он вводит какие-нибудь данные, то на экране должно выводиться сообщение "ОК". Если он не вводит данные, а просто нажимает Enter , то программа ничего не выводит на экран.
  2. Напишите программу, которая запрашивает у пользователя число. Если оно больше нуля, то в ответ на экран выводится число 1. Если введенное число не является положительным, то на экран должно выводиться -1.

Примеры решения и дополнительные уроки в pdf-версии курса

X Скрыть Наверх

Python. Введение в программирование

#5 – Условные операторы

#5 – Условные операторы

Условные конструкции предоставляют возможность выполнить проверку условия и в зависимости от результата выполнить определенный участок кода. За урок мы научимся использовать if-else, а также тернарный оператор в языке Python.

Видеоурок

Что такое условные операторы?

Они отвечают за изменение поведения программы в зависимости от входных параметров, определённых в проверке. Проще говоря: если будет число 1, то программа запустит скрипт one, а если число 2 – скрипт two. Внутри условных операторов могут быть другие такие же условия для уточнения полученных данных. В рамках одного оператора можно сразу проверить пару условий. Для того, чтобы проверить несколько условий нужно их разделить элементом and (логическое и).

Пример создания условия:

a = 2 if a != 0 and a != 1: print ("Проверка сработала")

На экране будет показана запись лишь в том случае, когда переменная «a» не будет равна значению 0 и значению 1. То есть обе проверки в операторе должны выдать результат – true.

Есть возможность произвести проверку с помощью or - логическое или. При использовании данного оператора достаточным поводом для запуска сообщения «Заработало» станет соответствие хотя бы одного из условий.

a = 1.1 if a != 1.1 or a > 0: print ("Проверка сработала")

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

user_data = int(input("Введите число: ")) isHappy = True if isHappy or user_data == 6: print("User is happy") elif user_data == 5: print("Number is 5") elif user_data == 7: print("Number is 7") else: print("User is unhappy") # if user_data != 5: # print("Мы на месте") # if user_data > 6: # print("Number is bigger than 5")
Посмотреть остальной код можно после подписки на проект!

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *