Поиск по сайту:

Как писать условные операторы в Python 3


Введение

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

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

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

  • Если учащийся набрал более 65 % по тесту, сообщите, что его оценка сдана; если нет, сообщите, что ее оценка неудовлетворительна
  • Если у него есть деньги на счету, рассчитайте проценты; если нет, взимать штраф
  • Если они покупают 10 или более апельсинов, рассчитайте скидку в размере 5%; если они покупают меньше, то не

Оценивая условия и назначая код для выполнения в зависимости от того, выполняются ли эти условия, мы пишем условный код.

В этом руководстве вы познакомитесь с написанием условных операторов на языке программирования Python.

Предпосылки

У вас должен быть установлен Python 3 и настроена среда программирования на вашем компьютере или сервере. Если у вас не настроена среда программирования, вы можете обратиться к руководствам по установке и настройке среды программирования на вашем сервере, подходящей для вашей операционной системы (Ubuntu, CentOS, Debian и т. д.).

Если заявление

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

Информация: Чтобы следовать примеру кода в этом руководстве, откройте интерактивную оболочку Python в вашей локальной системе, выполнив команду python3. Затем вы можете копировать, вставлять или редактировать примеры, добавляя их после приглашения >>>.

В текстовом редакторе откройте файл и напишите следующий код:

grade = 70
 
if grade >= 65:
    print("Passing grade")

В этом коде у нас есть переменная grade, и мы присваиваем ей целочисленное значение 70. Затем мы используем оператор if, чтобы оценить, больше или равно значение переменной ( >= ) 65. Если он соответствует этому условию, мы говорим программе распечатать строку Проходной балл.

Сохраните программу как grade.py и запустите ее в локальной среде программирования из окна терминала с помощью команды pythongrade.py.

В этом случае оценка 70 действительно соответствует условию быть больше или равной 65, поэтому после запуска программы вы получите следующий вывод:

Output
Passing grade

Давайте теперь изменим результат этой программы, изменив значение переменной grade на 60:

grade = 60
 
if grade >= 65:
    print("Passing grade")

Когда мы сохраним и запустим этот код, мы не получим никаких выходных данных, потому что условие не было выполнено, и мы не сказали программе выполнить другую инструкцию.

Чтобы привести еще один пример, давайте посчитаем, меньше ли баланс банковского счета 0. Давайте создадим файл с именем account.py и напишем следующую программу:

balance = -5
 
if balance < 0:
    print("Balance is below 0, add funds now or you will be charged a penalty.")

Когда мы запустим программу с python account.py, мы получим следующий вывод:

Output
Balance is below 0, add funds now or you will be charged a penalty.

В программе мы инициализировали переменную balance значением -5, что меньше 0. Так как баланс удовлетворял условию if (balance < 0), как только мы сохраним и запустим код, мы получим строковый вывод. Опять же, если мы изменим баланс на 0 или положительное число, мы не получим вывода.

Еще Заявление

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

Для этого мы добавим оператор else к приведенному выше условию оценки, построенному следующим образом:

grade = 60
 
if grade >= 65:
    print("Passing grade")
 
else:
    print("Failing grade")

Поскольку приведенная выше переменная оценки имеет значение 60, оператор if оценивается как ложный, поэтому программа не будет распечатывать Проходной балл. Следующий за ним оператор else сообщает программе, что она должна что-то сделать в любом случае.

Когда мы сохраним и запустим программу, мы получим следующий вывод:

Output
Failing grade

Если мы затем перепишем программу так, чтобы оценка была равна 65 или выше, вместо этого мы получим вывод Проходной балл.

Чтобы добавить оператор else в пример с банковским счетом, мы перепишем код следующим образом:

balance = 522
 
if balance < 0:
    print("Balance is below 0, add funds now or you will be charged a penalty.")
 
else:
    print("Your balance is 0 or above.")
Output
Your balance is 0 or above.

Здесь мы изменили значение переменной balance на положительное число, чтобы оператор else печатался. Чтобы напечатать первый оператор if, мы можем переписать значение в отрицательное число.

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

Иначе если заявление

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

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

  • Баланс меньше 0
  • Баланс равен 0
  • Баланс больше 0

Оператор elif будет помещен между оператором if и оператором else следующим образом:

. . .
if balance < 0:
    print("Balance is below 0, add funds now or you will be charged a penalty.")
 
elif balance == 0:
    print("Balance is equal to 0, add funds soon.")
 
else:
    print("Your balance is 0 or above.")

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

  • Если переменная balance равна 0, мы получим вывод оператора elif (Balance равен 0 , скорее пополняйте.)
  • Если для переменной balance задано положительное число, мы получим выходные данные оператора else (Ваш баланс равен 0 или выше.).
  • Если для переменной balance задано отрицательное число, на выходе будет строка из оператора if (Balance меньше 0, добавьте средства сейчас или вам будет начислен штраф).

Но что, если мы хотим иметь более трех возможностей? Мы можем сделать это, вписав в наш код более одного оператора elif.

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

  • 90 или выше соответствует оценке A
  • 80–89 соответствует оценке B.
  • 70–79 соответствует оценке C.
  • 65–69 соответствует оценке D.
  • 64 или ниже соответствует оценке F.

Чтобы запустить этот код, нам понадобится один оператор if, три оператора elif и оператор else, который будет обрабатывать все неудачные случаи.

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

. . .
if grade >= 90:
    print("A grade")
 
elif grade >=80:
    print("B grade")
 
elif grade >=70:
    print("C grade")
 
elif grade >= 65:
    print("D grade")
 
else:
    print("Failing grade")

Поскольку операторы elif будут оцениваться по порядку, мы можем сделать наши операторы довольно простыми. Эта программа выполняет следующие шаги:

  1. Если оценка больше 90, программа напечатает Оценка, если оценка меньше 90, программа перейдет к следующему оператору...
  2. Если оценка больше или равна 80, программа напечатает Bgrade, если оценка 79 или меньше, программа перейдет к следующему оператору...
  3. Если оценка больше или равна 70, программа напечатает Cgrade, если оценка 69 или меньше, программа перейдет к следующему оператору...
  4. Если оценка больше или равна 65, программа напечатает Оценка D, если оценка 64 или меньше, программа перейдет к следующему оператору...
  5. Программа напечатает Неудовлетворительная оценка, так как не были соблюдены все вышеуказанные условия.

Вложенные операторы if

Когда вы освоитесь с операторами if, elif и else, вы можете перейти к вложенным условным операторам. Мы можем использовать вложенные операторы if для ситуаций, когда мы хотим проверить вторичное условие, если первое условие выполняется как истинное. Для этого мы можем иметь оператор if-else внутри другого оператора if-else. Давайте посмотрим на синтаксис вложенного оператора if:

if statement1:				#outer if statement
    print("true")
 
    if nested_statement:	#nested if statement
        print("yes")
 
    else:					#nested else statement
        print("no")
 
else:						#outer else statement
    print("false")

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

  • Если statement1 оценивается как true, программа затем оценивает, является ли nested_statement также истинным. Если оба случая верны, вывод будет таким:

Output
true yes

  • Однако, если statement1 оценивается как true, а nested_statement — как false, вывод будет таким:

Output
true no

  • И если statement1 оценивается как false, вложенный оператор if-else не будет выполняться, поэтому оператор else будет выполняться один, и вывод будет таким:

Output
false

Мы также можем иметь несколько операторов if, вложенных в наш код:

if statement1:					#outer if 
    print("hello world")
 
    if nested_statement1:		#first nested if 
        print("yes")
 
    elif nested_statement2:		#first nested elif
        print("maybe")
 
    else:						#first nested else
        print("no")
 
elif statement2:				#outer elif
    print("hello galaxy")
 
    if nested_statement3:		#second nested if
        print("yes")
 
    elif nested_statement4:		#second nested elif
        print("maybe")
 
    else:						#second nested else
        print("no")
 
else:							#outer else
    statement("hello universe")

В приведенном выше коде есть вложенный оператор if внутри каждого оператора if в дополнение к оператору elif. Это позволит использовать больше вариантов для каждого условия.

Давайте рассмотрим пример вложенных операторов if в нашей программе grade.py. Мы можем сначала проверить, проходит ли оценка (больше или равна 65%), а затем оценить, какой буквенной оценке должна быть эквивалентна числовая оценка. Однако, если оценка не проходит, нам не нужно прогонять буквенные оценки, а вместо этого программа может сообщить, что оценка неудовлетворительна. Наш модифицированный код с вложенным оператором if будет выглядеть следующим образом:

. . .
if grade >= 65:
    print("Passing grade of:")
 
    if grade >= 90:
        print("A")
 
    elif grade >=80:
        print("B")
 
    elif grade >=70:
        print("C")
 
    elif grade >= 65:
        print("D")
 
else:
    print("Failing grade")

Если мы запустим код с переменной grade, установленной в целочисленное значение 92, первое условие будет выполнено, и программа выведет Проходной балл:. Затем он проверит, превышает ли оценка значение 90 или равно ему, и, поскольку это условие также выполняется, он распечатает A.

Если мы запустим код с переменной grade, установленной в 60, то первое условие не будет выполнено, поэтому программа пропустит вложенный if операторы и перейдите к оператору else, при этом программа распечатает Неудовлетворительная оценка.

Конечно, мы можем добавить к этому еще больше опций и использовать второй уровень вложенных операторов if. Возможно, мы захотим оценить оценки A+, A и A- отдельно. Мы можем сделать это, сначала проверив, является ли оценка проходной, затем проверив, является ли оценка 90 или выше, а затем проверив, превышает ли оценка 96 для A+, например:

. . .
if grade >= 65:
    print("Passing grade of:")
 
    if grade >= 90:
        if grade > 96:
            print("A+")
 
        elif grade > 93 and grade <= 96:
            print("A")
 
        elif grade >= 90:
            print("A-")
. . .

В приведенном выше коде для переменной grade, установленной на 96, программа выполнит следующее:

  1. Проверьте, больше или равно ли значение 65 (истина)
  2. Распечатайте Проходной балл:
  3. Проверьте, больше ли оценка или равна 90 (правда)
  4. Проверьте, не превышает ли оценка 96 (ложь)
  5. Проверьте, больше ли оценка 93, а также меньше или равна 96 (правда)
  6. Распечатать A
  7. Оставьте эти вложенные условные операторы и продолжите работу с оставшимся кодом.

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

Output
Passing grade of: A

Вложенные операторы if могут предоставить возможность добавить в код несколько определенных уровней условий.

Заключение

Используя условные операторы, такие как оператор if, вы получите больший контроль над тем, что выполняет ваша программа. Условные операторы говорят программе оценить, выполняется ли определенное условие. Если условие выполнено, он выполнит определенный код, но если оно не будет выполнено, программа продолжит переход к другому коду.

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