Python цикл if: Циклы for и while, операторы break и continue, волшебное слово else
Содержание
синтаксис, блоки else/elif и примеры
При изучении программирования в качестве практики часто приходится создавать «идеальные программы», которые в реальном мире работают совсем не так.
Иногда, например, нужно исполнить ряд инструкций только в том случае, если соблюдаются определенные условия. Для обработки таких ситуаций в языках программирования есть операторы управления. В дополнение к управлению потоком выполнения программы эти операторы используются для создания циклов или пропуска инструкций, когда какое-то условие истинно.
Операторы управления бывают следующих типов:
- Оператор-выражение if
- Оператор-выражение if-else
- Оператор-выражение if-elif-else
- Цикл while
- Цикл for
- Оператор-выражение break
- Оператор-выражение continue
В этом уроке речь пойдет о первых трех операторах управления.
Оператор if
Синтаксис оператора if следующий:
if condition:
<indented statement 1>
<indented statement 2>
<non-indented statement>
Первая строчка оператора, то есть if condition
: — это условие if, а condition
— это логическое выражение, которое возвращает True
или False
. В следующей строке блок инструкций. Блок представляет собой одну или больше инструкций. Если он идет следом за условием if, такой блок называют блоком if.
Стоит обратить внимание, что у каждой инструкции в блоке if одинаковый отступ от слова if. Многие языки, такие как C, C++, Java и PHP, используют фигурные скобки ({}
), чтобы определять начало и конец блока, но в Python используются отступы.
Каждая инструкция должна содержать одинаковое количество пробелов. В противном случае программа вернет синтаксическую ошибку. В документации Python рекомендуется делать отступ на 4 пробела. Такая рекомендация актуальная для и для этого .
Как это работает:
Когда выполняется инструкция if, проверяется условие. Если условие истинно, тогда все инструкции в блоке if выполняются. Но если условие оказывается неверным, тогда все инструкции внутри этого блока пропускаются.
Инструкции следом за условием if, у которых нет отступов, не относятся к блоку if. Например, <non-intenden statement>
— это не часть блока if, поэтому она будет выполнена в любом случае.
Например:
number = int(input("Введите число: "))
if number > 10:
print("Число больше 10")
Первый вывод:
Введите число: 100
Число больше 10
Второй вывод:
Введите число: 5
Стоит обратить внимание, что во втором случае, когда условие не истинно, инструкция внутри блока if пропускается. В этом примере блок if состоит из одной инструкции, но их может быть сколько угодно, главное — делать отступы.
Рассмотрим следующий код:
number = int(input("Введите число: "))
if number > 10:
print("первая строка")
print("вторая строка")
print("третья строка")
print("Выполняется каждый раз, когда вы запускаете программу")
print("Конец")
Первый вывод:
Введите число: 45
первая строка
вторая строка
третья строка
Выполняется каждый раз, когда вы запускаете программу
Конец
Второй вывод:
Введите число: 4
Выполняется каждый раз, когда вы запускаете программу
Конец
Здесь важно обратить внимание, что только выражения на строках 3, 4 и 5 относятся к блоку if. Следовательно, они будут исполнены только в том случае, когда условие if будет истинно. Но инструкции на строках 7 и 8 выполнятся в любом случае.
Консоль Python реагирует иначе при использовании операторов управления прямо в ней. Стоит напомнить, что для разбития выражения на несколько строк используется оператор продолжение (\
). Но в этом нет необходимости с операторами управления. Интерпретатор Python автоматически активирует мультистрочный режим, если нажать Enter после условия if. Например:
>>>
>>> n = 100
>>> if n > 10:
...
После нажатия Enter на строке с условием if командная строка преобразуется с >>>
на …
. Консоль Python показывает …
для многострочных инструкций. Это значит, что начатая инструкция все еще не закончена.
Чтобы закончить инструкцию if, нужно добавить еще одну инструкцию в блок if:
>>>
>>> n = 100
>>> if n > 10:
... print("n v 10")
...
Python не будет автоматически добавлять отступ. Это нужно сделать самостоятельно. Закончив ввод инструкции, нужно дважды нажать Enter, чтобы исполнить инструкцию. После этого консоль вернется к изначальному состоянию.
>>>
>>> n = 100
>>> if n > 10:
... print("n больше чем 10")
...
n больше чем 10
>>>
Все эти программы заканчиваются внезапно, не показывая ничего, если условие не истинно. Но в большинстве случаев пользователю нужно показать хотя бы что-нибудь. Для этого используется оператор-выражение if-else.
Оператор if-else
Оператор if-else исполняет одну порцию инструкций, если условие истинно и другое — если нет. Таким образом этот оператор предлагает два направления действий. Синтаксис оператора if-else следующий:
if condition:
statement 1
statement 2
and so on
else:
statement 3
statement 4
and so on:
Как это работает:
Когда оператор if-else исполняется, условие проверяется, и если оно возвращает True
, когда инструкции в блоке if исполняются. Но если возвращается False
, тогда исполняются инструкции из блока else.
Пример 1: программа для расчета площади и длины окружности круга.
radius = int(input("Введите радиус: "))
if radius >= 0:
print("Длина окружности = ", 2 * 3.14 * radius)
print("Площадь = ", 3.14 * radius ** 2)
else:
print("Пожалуйста, введите положительное число")
Первый вывод:
Введите радиус: 4
Длина окружности = 25.12
Площадь = 50.24
Второй вывод:
Введите радиус: -12
Пожалуйста, введите положительное число
Теперь программа показывает корректный ответ пользователю, даже если условие if не является истинным. Это и требуется.
В инструкциях if-else нужно следить за тем, чтобы условия if и else находились на одном уровне. В противном случае программа вернет синтаксическую ошибку. Например:
radius = int(input("Введите радиус: "))
if radius >= 0:
print("Длина окружности = ", 2 * 3.
SyntaxError: invalid syntax
$
Для исправления проблемы нужно вертикально выровнять if и else
Другой пример:
Пример 2: программа для проверки пароля, введенного пользователем.
password = input("Введите пароль: ")
if password == "sshh":
print("Добро пожаловать")
else:
print("Доступ запрещен")
Первый вывод:
Введите пароль: sshh
Добро пожаловать
Второй вывод:
Введите пароль: abc
Доступ запрещен
Вложенные операторы if и if-else
Использовать операторы if-else можно внутри других инструкций if или if-else. Это лучше объяснить на примерах:
Оператор if внутри другого if-оператора
Пример 1: программа, проверяющая, имеет ли студент право на кредит.
gre_score = int(input("Введите текущий лимит: "))
per_grad = int(input("Введите кредитный рейтинг: "))
if per_grad > 70:
if gre_score > 150:
print("Поздравляем, вам выдан кредит")
else:
print("Извините, вы не имеете права на кредит")
Здесь оператор if используется внутри другого if-оператора. Внутренним называют вложенный оператором if. В этом случае внутренний оператор if относится к внешнему блоку if, а у внутреннего блока if есть только одна инструкция, которая выводит “Поздравляем, вам выдан кредит”.
Как это работает:
Сначала оценивается внешнее условие if, то есть per_grad > 70
. Если оно возвращает True
, тогда управление программой происходит внутри внешнего блока if. Там же проверяется условие gre_score > 150
. Если оно возвращает True
, тогда в консоль выводится "Congratulations you are eligible for loan"
. Если False
, тогда программа выходит из инструкции if-else, чтобы исполнить следующие операции. Ничего при этом не выводится в консоль.
При этом если внешнее условие возвращает False
, тогда выполнение инструкций внутри блока if пропускается, и контроль переходит к блоку else (9 строчка).
Первый вывод:
Введите текущий лимит: 160
Введите кредитный рейтинг: 75
Поздравляем, вам выдан кредит
Второй вывод:
Введите текущий лимит: 160
Введите кредитный рейтинг: 60
Извините, вы не имеете права на кредит
У этой программы есть одна маленькая проблема. Запустите ее заново и введите gre_score
меньше чем 150
, а per_grade
— больше 70
:
Вывод:
Введите текущий лимит: 140
Введите кредитный рейтинг: 80
Программа не выводит ничего. Причина в том, что у вложенного оператора if нет условия else. Добавим его в следующем примере.
Пример 2: инструкция if-else внутри другого оператора if.
gre_score = int(input("Введите текущий лимит: "))
per_grad = int(input("Введите кредитный рейтинг: "))
if per_grad > 70:
if gre_score > 150:
print("Поздравляем, вам выдан кредит")
else:
print("У вас низкий кредитный лимит")
else:
print("Извините, вы не имеете права на кредит")
Вывод:
Введите текущий лимит: 140
Введите кредитный рейтинг: 80
У вас низкий кредитный лимит
Как это работает:
Эта программа работает та же, как и предыдущая. Единственное отличие — у вложенного оператора if теперь есть инструкция else. Теперь если ввести балл GRE меньше, чем 150, программа выведет: “У вас низкий кредитный лимит”
При создании вложенных операторов if или if-else, всегда важно помнить об отступах. В противном случае выйдет синтаксическая ошибка.
Оператор if-else внутри условия else
Пример 3: программа для определения оценки студента на основе введенных баллов.
score = int(input("Введите вашу оценку: "))
if score >= 90:
print("Отлично! Ваша оценка А")
else:
if score >= 80:
print("Здорово! Ваша оценка - B")
else:
if score >= 70:
print("Хорошо! Ваша оценка - C")
else:
if score >= 60:
print("Ваша оценка - D. Стоит повторить материал.")
else:
print("Вы не сдали экзамен")
Первый вывод:
Введите вашу оценку: 92
Отлично! Ваша оценка А
Второй вывод:
Введите вашу оценку: 72
Хорошо! Ваша оценка - C
Третий вывод:
Введите вашу оценку: 56
Вы не сдали экзамен
Как это работает:
Когда управление программой переходит к оператору if-else, проверяется условие на строке 3 (score >= 90
). Если оно возвращает True
, в консоль выводится “Отлично! Ваша оценка А”. Если значение неверное, управление переходит к условию else
на 5 строке. Теперь проверяется условие score >= 80
(6 строка). Если оно верное, тогда в консоли выводится “Здорово! Ваша оценка — B”.
В противном случае управление программой переходит к условию else
на 8 строке. И здесь снова имеется вложенный оператор if-else. Проверяется условие (score >= 70
). Если оно истинно, тогда в консоль выводится “Хорошо! Ваша оценка — C”. В противном случае управление переходит к блоку else
на 11 строке. В конце концов, проверяется условие (score >= 60
). Если оно возвращает True
, тогда в консоль выводится “Ваша оценка — D. Стоит повторить материал.” Если же False
, тогда в консоли будет “Вы не сдали экзамен”. На этом этапе управление переходит к следующим инструкциям, написанным после внешнего if-else.
Хотя вложенные операторы if-else позволяют проверять несколько условий, их довольно сложно читать и писать. Эти же программы можно сделать более читабельными и простыми с помощью if-elif-else.
Оператор if-elif-else
Оператор if-elif-else — это альтернативное представление оператора if-else, которое позволяет проверять несколько условий, вместо того чтобы писать вложенные if-else. Синтаксис этого оператора следующий:
if condition_1:
statement
statement
more statement
elif condition_2:
statement
statement
more statement
elif condition_3:
statement
statement
more statement
...
else
statement
statement
more statement
Примечание: …
означает, что можно писать сколько угодно условий eilf
.
Как это работает:
Когда исполняется инструкция if-elif-else, в первую очередь проверяется condition_1
. Если условие истинно, тогда исполняется блок инструкций if. Следующие условия и инструкции пропускаются, и управление переходит к операторам вне if-elif-else.
Если condition_1
оказывается ложным, тогда управление переходит к следующему условию elif
, и проверяется condition_2
. Если оно истинно, тогда исполняются инструкции внутри первого блока elif
. Последующие инструкции внутри этого блока пропускаются.
Этот процесс повторяется, пока не находится условие elif
, которое оказывается истинным. Если такого нет, тогда исполняется блок else в самом конце.
Перепишем программу с помощью if-elif-else.
score = int(input("Введите вашу оценку: "))
if score >= 90:
print("Отлично! Ваша оценка А")
elif score >= 80:
print("Здорово! Ваша оценка - B")
elif score >= 70:
print("Хорошо! Ваша оценка - C")
elif score >= 60:
print("Ваша оценка - D. Стоит повторить материал.")
else:
print("Вы не сдали экзамен")
Первый вывод:
Введите вашу оценку: 78
Хорошо! Ваша оценка - C
Второй вывод:
Введите вашу оценку: 91
Отлично! Ваша оценка А
Третий вывод:
Введите вашу оценку: 55
Вы не сдали экзамен
Такую программу намного легче читать, чем в случае с вложенными if-else.
Python. Урок 5. Условные операторы и циклы
В этом уроке рассмотрим оператор ветвления if и операторы цикла while и for. Основная цель – это дать общее представление об этих операторах и на простых примерах показать базовые принципы работы с ними.
Условный оператор ветвления if
Оператор ветвления if позволяет выполнить определенный набор инструкций в зависимости от некоторого условия. Возможны следующие варианты использования.
1. Конструкция if
Синтаксис оператора if выглядит так.
if выражение: инструкция_1 инструкция_2 ... инструкция_n
После оператора if записывается выражение. Если это выражение истинно, то выполняются инструкции, определяемые данным оператором. Выражение является истинным, если его результатом является число не равное нулю, непустой объект, либо логическое True. После выражения нужно поставить двоеточие “:”.
ВАЖНО: блок кода, который необходимо выполнить, в случае истинности выражения, отделяется четырьмя пробелами слева!
Примеры:
if 1: print("hello 1")
Напечатает: hello 1
a = 3 if a == 3: print("hello 2")
Напечатает: hello 2
a = 3 if a > 1: print("hello 3")
Напечатает: hello 3
lst = [1, 2, 3] if lst : print("hello 4")
Напечатает: hello 4
2. Конструкция if – else
Бывают случаи, когда необходимо предусмотреть альтернативный вариант выполнения программы. Т.е. при истинном условии нужно выполнить один набор инструкций, при ложном – другой. Для этого используется конструкция if – else.
if выражение: инструкция_1 инструкция_2 ... инструкция_n else: инструкция_a инструкция_b ... инструкция_x
Примеры.
a = 3 if a > 2: print("H") else: print("L")
Напечатает: H
a = 1 if a > 2: print("H") else: print("L")
Напечатает: L
Условие такого вида можно записать в строчку, в таком случае оно будет представлять собой тернарное выражение.
a = 17 b = True if a > 10 else False print(b)
В результате выполнения такого кода будет напечатано: True
3. Конструкция if – elif – else
Для реализации выбора из нескольких альтернатив можно использовать конструкцию if – elif – else.
if выражение_1: инструкции_(блок_1) elif выражение_2: инструкции_(блок_2) elif выражение_3: инструкции_(блок_3) else: инструкции_(блок_4)
Пример.
a = int(input("введите число:")) if a < 0: print("Neg") elif a == 0: print("Zero") else: print("Pos")
Если пользователь введет число меньше нуля, то будет напечатано “Neg“, равное нулю – “Zero“, большее нуля – “Pos“.
Оператор цикла while
Оператор цикла while выполняет указанный набор инструкций до тех пор, пока условие цикла истинно. Истинность условия определяется также как и в операторе if. Синтаксис оператора while выглядит так.
while выражение: инструкция_1 инструкция_2 ... инструкция_n
Выполняемый набор инструкций называется телом цикла.
Пример.
a = 0 while a < 7: print("A") a += 1
Буква “А” будет выведена семь раз в столбик.
Пример бесконечного цикла.
a = 0 while a == 0: print("A")
Операторы
break и continue
При работе с циклами используются операторы break и continue.
Оператор break предназначен для досрочного прерывания работы цикла while.
Пример.
a = 0 while a >= 0: if a == 7: break a += 1 print("A")
В приведенном выше коде, выход из цикла произойдет при достижении переменной a значения 7. Если бы не было этого условия, то цикл выполнялся бы бесконечно.
Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется.
Пример.
a = -1 while a < 10: a += 1 if a >= 7: continue print("A")
При запуске данного кода символ “А” будет напечатан 7 раз, несмотря на то, что всего будет выполнено 11 проходов цикла.
Оператор цикла for
Оператор for выполняет указанный набор инструкций заданное количество раз, которое определяется количеством элементов в наборе.
Пример.
for i in range(5): print("Hello")
В результате “Hello” будет выведено пять раз.
Внутри тела цикла можно использовать операторы break и continue, принцип работы их точно такой же как и в операторе while.
Если у вас есть заданный список, и вы хотите выполнить над каждым элементом определенную операцию (возвести в квадрат и напечатать получившееся число), то с помощью for такая задача решается так.
lst = [1, 3, 5, 7, 9] for i in lst: print(i ** 2)
Также можно пройти по всем буквам в строке.
word_str = "Hello, world!" for l in word_str: print(l)
Строка “Hello, world!” будет напечатана в столбик.
На этом закончим краткий обзор операторов ветвления и цикла.
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
<<< Python. Урок 4. Арифметические операции Python. Урок 6. Работа с IPython и Jupyter Notebook >>>
if-elif-else. Курс «Python. Введение в программирование»
Ранее мы рассмотрели работу условного оператора if
. С помощью его расширенной версии if-else можно реализовать две отдельные ветви выполнения. Однако алгоритм программы может предполагать выбор больше, чем из двух путей, например, из трех, четырех или даже пяти. В данном случае следует говорить о необходимости множественного ветвления.
Рассмотрим конкретный пример. Допустим, в зависимости от возраста пользователя, ему рекомендуется определенный видеоконтент. При этом выделяют группы от 3 до 6 лет, от 6 до 12, от 12 до 16, 16+. Итого 4 диапазона. Как бы мы стали реализовывать задачу, имея в наборе инструментов только конструкцию if-else?
Самый простой ответ – последовательно проверять вхождение введенного числа-возраста в определенный диапазон с помощью следующих друг за другом условных операторов:
old = int(input('Ваш возраст: ')) print('Рекомендовано:', end=' ') if 3 <= old < 6: print('"Заяц в лабиринте"') if 6 <= old < 12: print('"Марсианин"') if 12 <= old < 16: print('"Загадочный остров"') if 16 <= old: print('"Поток сознания"')
Примечание. Названия фильмов выводятся на экран в двойных кавычках. Поэтому в программе для определения строк используются одинарные.
Предложенный код прекрасно работает, но есть одно существенное «но». Он не эффективен, так как каждый if
в нем – это отдельно взятый оператор, никак не связанный с другими if
. Процессор тратит время и «нервы» на обработку каждого из них, даже если в этом уже нет необходимости. Например, введено число 10. В первом if
логическое выражение возвращает ложь, и поток выполнения переходит ко второму if
. Логическое выражение в его заголовке возвращает истину, и его тело выполняется. Всё, на этом программа должна была остановиться.
Однако следующий if
никак не связан с предыдущим, поэтому далее будет проверяться вхождение значения переменной old в диапазон от 12 до 16, в чем необходимости нет. И далее будет обрабатываться логическое выражение в последнем if
, хотя уже понятно, что и там будет False
. Что же делать?
Ответом является вложение условных операторов друг в друга:
old = int(input('Ваш возраст: ')) print('Рекомендовано:', end=' ') if 3 <= old < 6: print('"Заяц в лабиринте"') else: if 6 <= old < 12: print('"Марсианин"') else: if 12 <= old < 16: print('"Загадочный остров"') else: if 16 <= old: print('"Поток сознания"')
Рассмотрим поток выполнения этого варианта кода. Сначала проверяется условие в первом if
(он же самый внешний). Если здесь было получено True
, то тело этого if
выполняется, а в ветку else
мы даже не заходим, так как она срабатывает только тогда, когда в условии if
возникает ложь.
Если внешний if
вернул False
, поток выполнения программы заходит в соответствующий ему внешний else
. В его теле находится другой if
со своим else
. Если введенное число попадает в диапазон от 6 до 12, то выполнится тело вложенного if
, после чего программа завершается. Если же число не попадает в диапазон от 6 до 12, то произойдет переход к ветке else
. В ее теле находится свой условный оператор, имеющий уже третий уровень вложенности.
Таким образом до последней проверки (16 <= old
) интерпретатор доходит только тогда, когда все предыдущие возвращают False
. Если же по ходу выполнения программы возникает True
, то все последующие проверки опускаются, что экономит ресурсы процессора. Кроме того, такая логика выполнения программы более правильная.
Теперь зададимся следующим вопросом. Можно ли как-то оптимизировать код множественного ветвления и не строить лестницу из вложенных друг в друга условных операторов? Во многих языках программирования, где отступы используются только для удобства чтения программистом, но не имеют никакого синтаксического значения, часто используется подобный стиль:
if логическое_выражение { … ; } else if логическое_выражение { … ; } else if логическое_выражение { … ; } else { … ; }
Может показаться, что имеется только один уровень вложенности, и появляется новое расширение для if
, выглядящее как else if
. Но это только кажется. На самом деле if
, стоящее сразу после else
, является вложенным в это else
. Выше приведенная схема – то же самое, что
if логическое_выражение { … ; } else if логическое_выражение { … ; } else if логическое_выражение { … ; } else { … ; }
Именно так ее «понимает» интерпретатор или компилятор. Однако считается, что человеку проще воспринимать первый вариант.
В Питоне подобный номер с поднятием вложенного if
к более внешнему else
не прокатит, потому что в нем отступы и переходы на новую строку имеют синтаксическое значение. Поэтому в язык Python встроена возможность настоящего множественного ветвления на одном уровне вложенности, которое реализуется с помощью веток elif.
Слово «elif» образовано от двух первых букв слова «else», к которым присоединено слово «if». Это можно перевести как «иначе если».
В отличие от else
, в заголовке elif обязательно должно быть логическое выражение также, как в заголовке if
. Перепишем нашу программу, используя конструкцию множественного ветвления:
old = int(input('Ваш возраст: ')) print('Рекомендовано:', end=' ') if 3 <= old < 6: print('"Заяц в лабиринте"') elif 6 <= old < 12: print('"Марсианин"') elif 12 <= old < 16: print('"Загадочный остров"') elif 16 <= old: print('"Поток сознания"')
Обратите внимание, в конце, после всех elif
, может использоваться одна ветка else
для обработки случаев, не попавших в условия ветки if
и всех elif
. Блок-схему полной конструкции if-elif-…-elif-else можно изобразить так:
Как только тело if
или какого-нибудь elif
выполняется, программа сразу же возвращается в основную ветку (нижний ярко-голубой прямоугольник), а все нижеследующие elif
, а также else
пропускаются.
Практическая работа
Спишите последний вариант кода программы из урока. Дополните ее веткой
else
, обрабатывающие случаи, когда пользователь вводит числа не входящие в заданные четыре диапазона. Подумайте, почему в первой версии программы (когда использовались не связанные друг с другом условные операторы) нельзя было использоватьelse
, а для обработки таких, не входящих в диапазоны, случаев пришлось бы писать еще одинif
?Усовершенствуйте предыдущую программу, обработав исключение
ValueError
, возникающее, когда вводится не целое число.Напишите программу, которая запрашивает на ввод число. Если оно положительное, то на экран выводится цифра 1. Если число отрицательное, выводится -1. Если введенное число – это 0, то на экран выводится 0. Используйте в коде условный оператор множественного ветвления.
Примеры решения и дополнительные уроки в android-приложении и pdf-версии курса
Python: Ветвление if, elif, else, циклы while, генерация случайных чисел
Продолжаем учиться программированию. Переходим к изучению третьей главы по книге: Майкл Доусон «Программируем на Python», 2014 (Michael Dawson «Python Programming for the Absolute Beginner», 3rd Edition), где мы изучим условные операторы if
, elif
, else
и циклы while
и научимся генерировать случайные числа при помощи модуля с функциями random.randint()
и random.randrage()
.
Конспект 3 главы с примерами написанных мной программ:
Генерация случайных чисел в Python
Загружаем модуль import random
— он генерирует случайные числа на основе встроенной формулы. Чтобы присвоить переменной случайное значение, нужно после вызова модуля вызвать одну из его функций, например,
import random # Случайные значения в диапазоне от 1 до 10 включительно: peremennaya = random.randint(1,10) # Случайные значения в диапазоне от 0 до 9 включительно: peremennaya = random.randrange(10)
Условные конструкции if, elif, else
Для начала изучим операторы сравнения, ведь условные конструкции возможны, если одна переменная сравнивается с каким-то значением. Операторы:
==
равно!=
не равно>
больше>=
больше или равно<
меньше<=
меньше или равно
Общий вид условной конструкции в Python:
Всегда есть один if
в начале и один else
в конце, а elif
может быть повторен между ними сколько угодно раз.
Вариант 1:
if "значение 1" оператор сравнения "значение 2": сделай то-то elif "значение 3" оператор сравнения "значение 4": сделай что-то еще else: сделай что-то другое
Вариант 2 (значения как условия: истина / ложь):
В этой конструкции подразумевается, что значение в условии if "значение":
является истиной, то есть условие выполнится только в том случае, если значение будет True. Чтобы сделать обратную конструкцию, используется отрицание not
после if
перед "значением"
.
Что является истиной и ложью в Python? На истинность / ложь можно проверить любое число или строку текста. Все числа, кроме «0» являются истиной, а нуль — ложь. Все строки, кроме пустой — истина, а пустая строка — ложь.
if "значение 1": сделай то-то elif: сделай что-то еще else: сделай что-то другое
Примеры использования условных конструкций:
Программа «Вход по паролю»: напишите программу, которая просить пользователя ввести пароль. Если пароль совпадает с заданным значением, то программа приветствует участника. Если пароль не совпадает с заданным значением, то программа выдает сообщение о том, что пароль не верный.
passw=input('Привет, введите пароль.\n') if passw=='kot': print('Wow, hi Kot!') else: print('So sorry, it\'s not right')
Программа «Вип-клуб»: Напишите программу, которая просить пользователя ввести пароль. В системе записано два вип-гостя, у которых заданы пароли. Если пользователь вводит один из двух заданных паролей, то программа приветствует того гостя, который вошел. Если пароль не соответствует ни одному из двух заданных значений, то программа напишет сообщение о том, что пароль не верный.
passw=input('Привет, введите пароль.\n') if passw=='kot': print('Wow, hi Kot!') elif passw=='medved': print('Hi, Bear! Love you!') else: print('So sorry, it\'s not right')
Цикл while, управляющая переменная, break, continue
Для создания циклов нам потребуются логические операторы:
not
неor
илиand
и
Цикл будет исполнен, если условие истинно. Условия могут быть как одинарными, так и составными.
Общий вид цикла:
управляющая переменная = » «
while управляющая переменная оператор сравнения «значение»:
сделай то-то
сделай что-то другое после завершения цикла, если его условие будет ложным
Пример использования цикла while
:
Программа «Симулятор ребенка»: создайте программу, которая задает вопрос «Почему?» и дает пользователю возможность дать ответ. После каждого ответа программа повторяет вопрос «Почему?» и опять дает возможность ввести ответ. И так до повторяется до тех пор, пока пользователь не введет ответ «покачану»; в этом случае программа пишет «Окидоки».
print('Child simulator') answer='' while answer!='покачану': answer=input('Почему?\n') print('Окидоки')
Бесконечный цикл в Python — while True:
, continue
, break
Если цикл получился бесконечным случайно, то это логическая ошибка. Но можно сделать и намеренно бесконечный цикл, например так — while True:
Чтобы завершить такой цикл, нужно написать break
— прервать цикл.
Чтобы перейти с какого-то места кода к началу цикла, напишем continue
.
Задача на использование условных конструкций и цикла:
Написать игру «Эпичная битва с андедами». Программа спрашивает имя пользователя. Затем герою говорится, что «Только ты сможешь победить андедов и спасти деревню». Задается вопрос: «Полная готовность к бою?». Пользователь может дать ответ. Если пользователь отвечает «да», то запускается игра, если отвечает иначе, то программа завершается тем, что просит пользователя нажать Entr для выхода. Игра заключается в следующем: на героя с 13 жизнями по очереди по одному нападают андеды, которые бьют на 2 очка за ход. При этом у героя отнимает 2 очка жизни. Битва продолжается до тех пор, пока герой не потеряет почти все жизни, но останется в живых. По завершению битвы нужно вывести на экран количество побежденных андедов и количество оставшихся жизней.
print('Игра "Эпичная битва с андедами":') name=input('Как тебя зовут?\n') print('Воин ',name,'!\nТолько ты сможешь победить андедов и спасти деревню.\n', sep='') ready=input('Полная готовность к бою? (да/нет)\n') if ready=='да': undead=0 health=13 damage=2 while health > 2: undead+=1 health-=damage print('Воин',name,'доблестно сразился с андедом и победил!\n \ Из-за повреждений очки жизни уменьшились с 13 до',health) print('Поздравляю! Всех нападавшие андеды побеждены, их было:', undead,'\n \ У тебя осталось', health,'очков жизни.') input('Нажми Entr, чтобы выйти из игры')
if/elif/else — Документация Python для сетевых инженеров 3.0
Конструкция if/elif/else
позволяет делать ответвления в ходе программы.
Программа уходит в ветку при выполнении определенного условия.
В этой конструкции только if является обязательным, elif и else
опциональны:
Условия
Конструкция if построена на условиях: после if и elif всегда пишется условие.
Блоки if/elif выполняются только когда условие возвращает True, поэтому первое с чем надо
разобраться — это что является истинным, а что ложным в Python.
True и False
В Python, кроме очевидных значений True и False, всем остальным объектам также
соответствует ложное или истинное значение:
- истинное значение:
- любое ненулевое число
- любая непустая строка
- любой непустой объект
- ложное значение:
- 0
- None
- пустая строка
- пустой объект
Например, так как пустой список это ложное значение, проверить, пустой ли список,
можно таким образом:
In [12]: list_to_test = [1, 2, 3] In [13]: if list_to_test: ....: print("В списке есть объекты") ....: В списке есть объекты
Тот же результат можно было бы получить несколько иначе:
In [14]: if len(list_to_test) != 0: ....: print("В списке есть объекты") ....: В списке есть объекты
Операторы сравнения
Операторы сравнения, которые могут использоваться в условиях:
In [3]: 5 > 6 Out[3]: False In [4]: 5 > 2 Out[4]: True In [5]: 5 < 2 Out[5]: False In [6]: 5 == 2 Out[6]: False In [7]: 5 == 5 Out[7]: True In [8]: 5 >= 5 Out[8]: True In [9]: 5 <= 10 Out[9]: True In [10]: 8 != 10 Out[10]: True
Примечание
Обратите внимание, что равенство проверяется двойным ==
.
Пример использования операторов сравнения:
In [1]: a = 9 In [2]: if a == 10: ...: print('a равно 10') ...: elif a < 10: ...: print('a меньше 10') ...: else: ...: print('a больше 10') ...: a меньше 10
Оператор in
Оператор in
позволяет выполнять проверку на наличие элемента в
последовательности (например, элемента в списке или подстроки в строке):
In [8]: 'Fast' in 'FastEthernet' Out[8]: True In [9]: 'Gigabit' in 'FastEthernet' Out[9]: False In [10]: vlan = [10, 20, 30, 40] In [11]: 10 in vlan Out[11]: True In [12]: 50 in vlan Out[12]: False
При использовании со словарями условие in выполняет проверку по
ключам словаря:
In [15]: r1 = { ....: 'IOS': '15.4', ....: 'IP': '10.255.0.1', ....: 'hostname': 'london_r1', ....: 'location': '21 New Globe Walk', ....: 'model': '4451', ....: 'vendor': 'Cisco'} In [16]: 'IOS' in r1 Out[16]: True In [17]: '4451' in r1 Out[17]: False
Операторы and, or, not
В условиях могут также использоваться логические операторы
and
, or
, not
:
In [15]: r1 = { ....: 'IOS': '15.4', ....: 'IP': '10.255.0.1', ....: 'hostname': 'london_r1', ....: 'location': '21 New Globe Walk', ....: 'model': '4451', ....: 'vendor': 'Cisco'} In [18]: vlan = [10, 20, 30, 40] In [19]: 'IOS' in r1 and 10 in vlan Out[19]: True In [20]: '4451' in r1 and 10 in vlan Out[20]: False In [21]: '4451' in r1 or 10 in vlan Out[21]: True In [22]: not '4451' in r1 Out[22]: True In [23]: '4451' not in r1 Out[23]: True
Оператор and
В Python оператор and
возвращает не булево значение, а значение
одного из операндов.
Если оба операнда являются истиной, результатом выражения будет
последнее значение:
In [24]: 'string1' and 'string2' Out[24]: 'string2' In [25]: 'string1' and 'string2' and 'string3' Out[25]: 'string3'
Если один из операторов является ложью, результатом выражения будет
первое ложное значение:
In [26]: '' and 'string1' Out[26]: '' In [27]: '' and [] and 'string1' Out[27]: ''
Оператор or
Оператор or
, как и оператор and, возвращает значение одного из
операндов.
При оценке операндов возвращается первый истинный операнд:
In [28]: '' or 'string1' Out[28]: 'string1' In [29]: '' or [] or 'string1' Out[29]: 'string1' In [30]: 'string1' or 'string2' Out[30]: 'string1'
Если все значения являются ложными, возвращается последнее значение:
In [31]: '' or [] or {} Out[31]: {}
Важная особенность работы оператора or
— операнды, которые находятся
после истинного, не вычисляются:
In [33]: '' or sorted([44,1,67]) Out[33]: [1, 44, 67] In [34]: '' or 'string1' or sorted([44,1,67]) Out[34]: 'string1'
Пример использования конструкции if/elif/else
Пример скрипта check_password.py, который проверяет длину пароля и есть
ли в пароле имя пользователя:
# -*- coding: utf-8 -*- username = input('Введите имя пользователя: ') password = input('Введите пароль: ') if len(password) < 8: print('Пароль слишком короткий') elif username in password: print('Пароль содержит имя пользователя') else: print('Пароль для пользователя {} установлен'.format(username))
Проверка скрипта:
$ python check_password.py Введите имя пользователя: nata Введите пароль: nata1234 Пароль содержит имя пользователя $ python check_password.py Введите имя пользователя: nata Введите пароль: 123nata123 Пароль содержит имя пользователя $ python check_password.py Введите имя пользователя: nata Введите пароль: 1234 Пароль слишком короткий $ python check_password.py Введите имя пользователя: nata Введите пароль: 123456789 Пароль для пользователя nata установлен
Тернарное выражение (Ternary expression)
Иногда удобнее использовать тернарный оператор, нежели развернутую
форму:
s = [1, 2, 3, 4] result = True if len(s) > 5 else False
Этим лучше не злоупотреблять, но в простых выражениях такая запись может быть полезной.
python 3.5: выход из цикла if (или других циклов)
При запуске программы пользователю предлагается ввести номер. Если число равно 1, выйдите из программы. Если число не равно 1, выведите его.
Интересно, как это понять?
Я использую python 3.5.
Мой код такой. Я всегда получаю ошибку: 'break' outside loop
Как я могу это исправить?
x = input('Please input a number: ')
if x == '1':
print('quit')
break
else:
continue
print(x)
python
python-3.x
Поделиться
Источник
Dawn
07 июля 2016 в 18:40
3 ответа
- Выход из вложенных циклов на нужном уровне
Возможный Дубликат : Выход из вложенного цикла Как выйти из вложенных циклов на определенном уровне. Например: foreach (item in Items) { foreach (item2 in Items2) { // Break; => we just exit the inner loop // while we need to break both loops. } } А если есть еще вложенные циклы и мы хотим…
- Выход из вложенных циклов в javascript: throw vs return
при разрыве вложенных циклов в javascript было бы лучше (как в более быстром, менее проблематичном или более популярном) разбить с помощью try-catch-throw, как это делают многие люди в python, или иметь самоисполняющуюся функцию, которая возвращается из циклов?
1
Вы получаете разрыв ошибки вне цикла, потому что разрыв ключевого слова используется для выхода из цикла. Вы используете его вне цикла, поэтому вы получаете ошибку. Для выхода из приложения не следует использовать break. Вместо этого вы должны использовать:
sys.exit(0)
Итак, теперь ваш код должен выглядеть следующим образом:
x = input('Please input a number: ')
if x == '1':
print('quit')
sys.exit(0)
else:
print(x)
Вам также не нужно продолжать в операторе else. Вы можете просто оставить оператор else пустым, и программа продолжит работу, или вы можете поместить print(x)
внутри оператора else, как я сделал с вашим кодом.
Поделиться
Aiden Grossman
07 июля 2016 в 18:45
0
Это не то, как вы выходите из приложения. Попробуйте sys.exit(error)
, где error-это номер ошибки.
break
позволяет избежать циклов, как это:
while True:
line = 'test'
if line = 'test':
break
print "now I'm not in the loop"
Поделиться
Athena
07 июля 2016 в 18:46
0
В вашем коде нет цикла, поэтому вам нужно добавить оператор while. Установите условие в True, чтобы оно всегда выполнялось. Вам также не нужен оператор else continue, так как это пропустит печать(x). X автоматически преобразуется в целое число, поэтому приведите его к строке.
while True:
x = input('Please input a number: ')
if str(x) == "1":
print('quit')
break
print(x)
Поделиться
CamJohnson26
07 июля 2016 в 18:53
Похожие вопросы:
отладчик ipdb, выход из цикла
Есть ли команда выйти из циклов (скажем, на время или на время) во время отладки на ipdb без необходимости использовать точки останова из них? Я использую команду until , чтобы выйти из понимания…
Пакетный выход из цикла после определенного количества циклов
Я хочу выйти из своего цикла при определенном количестве циклов (10 петель). Я просмотрел несколько вещей в Google, но петля должна была сделать что-то еще, так что я был немного потерян. Вот мой…
выход на несколько циклов
в моем проекте у меня есть несколько записей, снятых с микрофона iPhones, которые я зацикливаю с помощью этого кода -(IBAction)loop1{ NSError *error; audioPlayer = [[AVAudioPlayer alloc]…
Выход из вложенных циклов на нужном уровне
Возможный Дубликат : Выход из вложенного цикла Как выйти из вложенных циклов на определенном уровне. Например: foreach (item in Items) { foreach (item2 in Items2) { // Break; => we just exit the…
Выход из вложенных циклов в javascript: throw vs return
при разрыве вложенных циклов в javascript было бы лучше (как в более быстром, менее проблематичном или более популярном) разбить с помощью try-catch-throw, как это делают многие люди в python, или…
Выход из вложенных циклов for
У меня есть два цикла for хочу выйти из двух циклов мой контроль находится во внутреннем цикле см. приведенный ниже код for(condition) { for (condition) { if(condition) from here i want to exit from…
Python: выход из нескольких уровней цикла
У меня есть этот псевдокод для тестера примитивности Миллера-Рабина: function isPrime(n, k=5) if n < 2 then return False for p in [2,3,5,7,11,13,17,19,23,29] if n % p == 0 then return n == p s, d…
выход из вложенного цикла без goto
как я могу выйти из вложенных while() или for() без goto? например, если я использую три цикла, как показано ниже, в функции: void myfun(){ for (;;) { while( true ) { for (;;) { //what is the exit…
Выход из внешнего цикла из подпрограммы без логической переменной
Следующий минимальный пример: L1: do while(.true.) L2: do while(.true.) if(something=.true.) exit L1 end do L2 end do L1 Итак, теперь я хочу записать внутренний цикл L2 в подпрограмму внутри…
Выход из вложенных циклов в R
Очень простой пример кода (только для демонстрации, никакого использования вообще): repeat { while (1 > 0) { for (i in seq(1, 100)) { break # usually tied to a condition } break } break }…
Язык программирования «Python». Условный оператор if
Оператор if
Условный оператор if позволяет выполнить определенный набор инструкций в зависимости
от некоторого условия. Использовать этот оператор можно в нескольких вариантах. В этом видео разберем только
2 варианта.
1 Конструкция if
В простейшем варианте использование оператора if выглядит так:
if условие:
блок команд 1
блок команд 2
После оператора if обязательно записывается условие. После условия необходимо поставить знак двоеточия “:”.
Если данное условие будет истинно, то выполняется блок команд 1.
Вне зависимости от условия блок команд 2 будет выполняться в любом случае.
Рассмотрим пример
if a==777:
print("Этот принт сработает, если а будет равно 777.")
print("И так же этот принт.")
print("И этот.")
print("А это сообщение выведется в любом случае")
Здесь 3 команды, сдвинутые отступами, будут выполняться только в том случае, если переменная а будет
равна 777. А последняя команда будет выполняться в любом случае, т.к. по оступам она стоит на том же уровне,
что и оператор if, тем самым как бы закрывая собой блок команд внутри условного оператора.
Еще пример
money = 100
ticket = 90
if money > ticket:
print("УРАААА!!!")
print("Я иду в кино!")
print("Пора идти домой")
Что касается отступов. Внутри блока инструкции должны находиться на одинаковом уровне отступов.
В противном случае будет ошибка.
if 5>1:
print("Тут оступ в 2 пробела.")
print("А здесь в четыре. Будет ошибка.")
Пример программы:
Программа получает на вход 2 числа, и нужно перераспределить эти 2 значения таким образом,
чтобы в первой переменной оказалось большее значение.
a=int(input())
b=int(input())
if b>a:
a,b = b,a
print(a,b)
2 Конструкция if-else
В состав оператора if может входить необязательный оператор else. Схема использования выглядит
следующим образом:
if условие:
блок команд 1
else:
блок команд 2
блок команд 3
Инструкции, входящие в блок команд 1, будут выполняться только в случае, если условие будет истинно.
В противном случае будет выполняться блок команд 2. А блок команд 3 выполнится после этого
в любом случае.
Пример программы на if-else
Вводится одно число и необходимо вывести сообщение «Четное», если число делится на 2 без остатка, или
«Нечетное» — в противном случае
a = int(input())
if a%2==0:
print('Четное')
else:
print('Нечетное')
Еще пример программы на if-else
Вводится два числа и необходимо вывести самое большое значение среди них.
a = int(input())
b = int(input())
if a>b:
print(a)
else:
print(b)
Вопросы для проверки пройденного:
-
1 Исправьте следующий код:
score = int(input("Ваш балл за экзамен") if score > 80: print("Хороший результат.")
-
2 В этом коде две ошибки. Найдите и исправьте их:
x == 7 if x % 2 !=0: print("x - нечетное число.") else print("x - четное число.")
3 В этом коде четыре ошибки. Скопируйте код в IDLE и найдите ошибки.
day = input("Как называется 5й день недели?") if day = "Friday" or d=="friday": print("Верно!") else print("Неверно!")
4 Подумайте почему эта программа неправильно работает.
x=input("Как настроение?") if x=="Хорошо" or "Прекрасно": print("Приятно слышать!")
Python Условия
Условия Python и операторы If
Python поддерживает обычные логические условия из математики:
- Равно: a == b
- Не равно: a! = B
- Менее: a
- Меньше или равно: a <= b
- Больше чем: a> b
- Больше или равно: a> = b
Эти условия можно использовать по-разному, чаще всего в «операторах if» и циклах.
Оператор if записывается с использованием ключевого слова if.
Пример
Если выписка:
a = 33
b = 200
, если b> a:
print («b больше, чем a»)
Попробуй сам »
В этом примере мы используем две переменные, a и b,
которые используются как часть оператора if, чтобы проверить, больше ли b, чем a.
Поскольку a равно 33, а b равно 200,
мы знаем, что 200 больше 33, и поэтому выводим на экран, что «b больше, чем a».
Отступ
Python полагается на отступ (пробел в начале строки) для определения области действия в коде.В других языках программирования для этой цели часто используются фигурные скобки.
Пример
Оператор If без отступа (вызовет ошибку):
a = 33
b = 200
, если b> a:
print («b больше, чем a»)
# вы получите сообщение об ошибке
Попробуй сам »
Элиф
Ключевое слово elif — это способ питонов сказать «если предыдущие условия не были истинными, то
попробуйте это условие ».
Пример
a = 33
b = 33
, если b> a:
print («b больше, чем a»)
elif a == b:
print («a и b равны»)
Попробуй сам »
В этом примере a равно b, поэтому первое условие неверно, но условие elif истинно, поэтому мы выводим на экран, что «a и b равны».
Остальное
Ключевое слово else перехватывает все, что не отловлено предыдущими условиями.
Пример
a = 200
b = 33
, если b> a:
print («b больше, чем a»)
elif a == b:
print («a и b равны»)
else:
print («a больше, чем b»)
Попробуй сам »
В этом примере a больше, чем b,
поэтому первое условие неверно, также условие elif неверно,
поэтому мы переходим к условию else и выводим на экран, что «a больше, чем b».
Вы также можете иметь или
без
Элиф
:
Пример
a = 200
b = 33
, если b> a:
print («b больше, чем a»)
иначе:
print («b не больше a»)
Попробуй сам »
Короткая рука, если
Если у вас есть только один оператор для выполнения, вы можете поместить его в ту же строку, что и оператор if.
Короткая рука, если … Остальное
Если у вас есть только один оператор для выполнения, один для if и один для else, вы можете поместить его
все на одной линии:
Пример
Одна строка оператора if else:
a = 2
b = 330
печать («A»), если a> b, иначе печать («B»)
Попробуй сам »
Этот метод известен как Тернарные операторы или Условный
Выражения .
У вас также может быть несколько операторов else в одной строке:
Пример
Одна строка оператора if else с 3 условиями:
a = 330
b = 330
print («A») если a> b else print («=») if a == b else print («B»)
Попробуй сам »
и
Ключевое слово and является логическим оператором, а
используется для объединения условных операторов:
Пример
Проверить, если
больше, чем
b
, И если c
больше a
:
a = 200
b = 33
c = 500
, если a> b и c> a:
print («Оба условия верны»)
Попробуй сам »
или
Ключевое слово или
является логическим оператором, и
используется для объединения условных операторов:
Пример
Проверить, если
больше, чем
b
, ИЛИ если a
больше c
:
a = 200
b = 33
c = 500
, если a> b или a> c:
print («По крайней мере одно из условий верно»)
Попробуй сам »
Вложенный, если
У вас может быть , если внутри
операторов
, если операторы
, это называется вложенными
, если
операторов.
Пример
x = 41
, если x> 10:
print («Больше десяти»)
, если x> 20:
print («и
также выше 20! «)
else:
print (» но не
выше 20. «)
Попробуй сам »
Пропуск Заявление
, если операторы
не могут быть пустыми, но если вы
по какой-то причине есть оператор if
без содержимого, вставьте оператор pass
, чтобы избежать ошибки.
Python если, если…else, if … elif … else и Nested if Заявление
Что такое оператор if … else в Python?
Принятие решения требуется, когда мы хотим выполнить код, только если выполняется определенное условие.
Оператор if… elif… else
используется в Python для принятия решений.
Синтаксис оператора if Python
если тестовое выражение: выписка (а)
Здесь программа оценивает тестовое выражение
и выполнит оператор (ы) только в том случае, если тестовое выражение имеет значение True
.
Если тестовое выражение — False
, оператор (ы) не выполняется.
В Python тело оператора if
обозначается отступом. Тело начинается с отступа, а первая строка без отступа отмечает конец.
Python интерпретирует ненулевые значения как True
. Нет
и 0
интерпретируются как Ложь
.
Блок-схема оператора if Python
Блок-схема оператора if в программировании на Python
Пример: оператор if в Python
# Если число положительное, печатаем соответствующее сообщение
число = 3
если число> 0:
print (num, "- положительное число.")
print ("Это всегда печатается.")
число = -1
если число> 0:
print (num, «положительное число.»)
print («Это тоже всегда печатается.»)
Когда вы запустите программу, вывод будет:
3 - положительное число Это всегда печатается Это тоже всегда печатается.
В приведенном выше примере num> 0
— это тестовое выражение.
Тело , если
выполняется, только если оно оценивается как Истинно
.
Когда переменная num равна 3, тестовое выражение истинно, а операторы внутри тела выполняются.
Если переменная num равна -1, тестовое выражение ложно, а операторы внутри тела , если
пропускаются.
Оператор print ()
выходит за пределы блока if
(без отступов). Следовательно, он выполняется независимо от тестового выражения.
Python if ... else Заявление
Синтаксис if ... else
если тестовое выражение: Тело if еще: Кузов else
Модель if.Оператор .else
оценивает тестовое выражение
и выполнит тело , если
, только тогда, когда условие теста - Истина
.
Если условие False
, выполняется тело else
. Отступы используются для разделения блоков.
Python if..else Блок-схема
Блок-схема оператора if ... else в Python
Пример if ... else
# Программа проверяет, положительное или отрицательное число
# И отображает соответствующее сообщение
число = 3
# Попробуйте также эти два варианта.# число = -5
# число = 0
если число> = 0:
print ("Положительный или ноль")
еще:
print («Отрицательное число»)
Выход
Положительный или нулевой
В приведенном выше примере, когда num равно 3, тестовое выражение истинно, а тело , если выполняется
, а тело
else пропускается.
Если num равно -5, тестовое выражение ложно, и выполняется тело , иначе
и тело , если
пропущено.
Если num равно 0, тестовое выражение истинно и тело , если выполняется
, а тело ,
else пропускается.
Python if ... elif ... else Заявление
Синтаксис if ... elif ... else
если тестовое выражение: Тело if тестовое выражение elif: Тело Элиф еще: Кузов else
elif
- это сокращение от else if. Это позволяет нам проверять наличие нескольких выражений.
Если условие для if
- False
, проверяется условие следующего блока elif
и так далее.
Если все условия False
, выполняется тело else.
Только один блок из нескольких if ... elif ... else
блоков выполняется согласно условию.
Блок if
может иметь только один блок else
. Но он может иметь несколько блоков elif
.
Блок-схема if ... elif ... else
Блок-схема оператора if ... elif .... else в Python
Пример if ... elif ... else
'' 'В этой программе
проверяем, положительное ли число или
отрицательный или ноль и
отобразить соответствующее сообщение '' '
число = 3.4
# Попробуйте также эти два варианта:
# число = 0
# число = -4,5
если число> 0:
print ("Положительное число")
elif num == 0:
print ("Ноль")
еще:
print («Отрицательное число»)
Если переменная num положительна, печатается Положительное число .
Если число равно 0, печатается Ноль .
Если число отрицательное, печатается отрицательное число .
Python Вложенные операторы if
У нас может быть , если...elif ... else
внутри другого оператора if ... elif ... else
. В компьютерном программировании это называется вложением.
Любое количество этих операторов может быть вложено друг в друга. Отступы - единственный способ определить уровень вложенности. Они могут сбивать с толку, поэтому их следует избегать, если в этом нет необходимости.
Python Nested if Пример
'' 'В этой программе мы вводим число
проверьте, положительное ли число или
отрицательный или ноль и отображение
соответствующее сообщение
На этот раз мы используем вложенный оператор if '' '
num = float (input ("Введите число:"))
если число> = 0:
если num == 0:
print ("Ноль")
еще:
print ("Положительное число")
еще:
print («Отрицательное число»)
Выход 1
Введите число: 5 Положительное число
Выход 2
Введите число: -1 Отрицательное число
Выход 3
Введите число: 0 Ноль
if else Заявления Python: пошаговое руководство
Оператор Python if else оценивает, является ли выражение n tr ue или ложным.Если conditio n равно tr ue, выполняется инструкция «if». В противном случае выполняется инструкция «else». Операторы Python if else помогают кодерам контролировать выполнение своих программ.
Найди свой учебный лагерь
- Карьера Карма подойдет вам с лучшими техническими учебными курсами
- Получите эксклюзивные стипендии и подготовительные курсы
Найди свой учебный лагерь
- Карьера Карма подойдет вам с лучшими техническими учебными курсами
- Получите эксклюзивные стипендии и подготовительные курсы
Когда вы пишете программу, вы можете захотеть, чтобы блок кода запускался только при выполнении определенного условия.Вот тут-то и пригодятся условные операторы. Условные операторы позволяют более эффективно контролировать выполнение вашей программы.
В Python операторы if и if… else используются для выполнения условных операций. В этом руководстве со ссылкой на примеры будут обсуждаться основы операторов if , if… else и elif в Python. Мы также обсудим, как использовать вложенные операторы , если .
Python if Заявление
Оператор Python if оценивает, является ли условие истинным или ложным.Оператор выполнит блок кода, если заданное условие равно true. В противном случае блок кода внутри оператора if не выполняется.
Найди свой учебный лагерь
- Карьера Карма подойдет вам с лучшими техническими учебными курсами
- Получите эксклюзивные стипендии и подготовительные курсы
Давайте напишем программу, которая печатает цену на сэндвич-заказ.Цена сэндвич-заказа должна отображаться только в том случае, если клиент заказал рулет из ветчины. Наш заказ сэндвичей - это строка Python. Вот код нашей программы:
sandwich_order = "Рулет из ветчины" если sandwich_order == "Рулет из ветчины": print ("Цена: 1,75 доллара")
Наш код возвращает: Цена: 1,75 доллара США
Мы объявили переменную sandwich_order. Этой переменной присвоено значение Рулет из ветчины .
Мы используем оператор if , чтобы проверить, равно ли sandwich_order Ham Roll .Если наше условие истинно, будет выполнен наш оператор print () . Если наше условие ложно, ничего не произойдет.
Карьера Карма вошла в мою жизнь, когда я больше всего в ней нуждалась, и быстро помогла мне пройти курс обучения. Через два месяца после выпуска я нашла работу своей мечты, которая соответствовала моим ценностям и целям в жизни!
Venus, инженер-программист Rockbot
Найдите свой матч на учебном лагере
Карьера Карма вошла в мою жизнь, когда я больше всего в ней нуждалась, и быстро помогла мне устроить буткемп.Через два месяца после выпуска я нашла работу своей мечты, которая соответствовала моим ценностям и целям в жизни!
Venus, инженер-программист Rockbot
Найдите свой матч на учебном лагере
Наша переменная sandwich_order равна Ham Roll. Это означает, что выполняется наш оператор if . Теперь посмотрим, что произойдет, если мы изменим наш заказ сэндвичей на Cheese Roll :
sandwich_order = "Сырный рулет" если sandwich_order == "Рулет из ветчины": print ("Цена: 1 доллар.75 дюймов)
Наш код ничего не возвращает. Оператор print () в нашем коде не имеет возможности выполнить. Это потому, что в нашем заказе сэндвич не равен Рулет из ветчины.
if else Заявление Python
Оператор if… else Python проверяет, выполняется ли условие. Если условие истинно, выполняется оператор if. В противном случае выполняется инструкция else.
До сих пор мы использовали оператор if, чтобы проверить, выполняется ли определенное условие.Но что, если мы хотим что-то сделать, если условие не выполняется?
Предположим, мы создаем приложение, которое проверяет, открыл ли клиент в местном ресторане вкладку. Если покупатель набрал более 20 долларов, ему необходимо выплатить его, прежде чем он сможет заказать еще еду. Ничего не должно произойти, если у покупателя нет накопленной вкладки более 20 долларов.
Для выполнения этой задачи мы могли бы использовать следующий код:
таб. = 29,95 если вкладка> 20: print ("У этого пользователя есть вкладка более 20 долларов, которую нужно заплатить.") еще: print («На вкладке этого пользователя ниже 20 долларов, поэтому немедленная оплата не требуется.»)
Наш код возвращает: У этого пользователя есть вкладка на сумму более 20 долларов, за которую нужно заплатить.
Давайте рассмотрим, как работает наш код. Сначала мы объявляем переменную Python под названием tab. Эта переменная отслеживает вкладку клиента. Мы используем оператор , если , чтобы проверить, не превышает ли вкладка клиента 20.
Если вкладка клиента стоит более 20 долларов, выполняется инструкция print () после нашего if .В противном случае выполняется инструкция print () после нашего предложения Python if… else.
Поскольку вкладка нашего клиента превышает 20 долларов, интерпретатор Python выполняет наш оператор if. Это дает нашей программе указание вывести сообщение на консоль. В сообщении говорится, что клиент должен оплатить свой счет.
Давайте установим вкладку клиента на 0 долларов и посмотрим, что произойдет:
Вкладка этого пользователя ниже 20 долларов, что не требует немедленной оплаты.
Наш код возвращает другой результат.Вкладка клиента не превышает 20 долларов. Это означает, что содержимое нашего оператора else выполняется вместо нашего оператора if .
Python elif Заявление
Оператор Python elif проверяет другое условие, если все предыдущие условия не выполняются. Они появляются после оператора if Python и перед оператором else. Вы можете использовать столько операторов elif, сколько захотите.
В нашем примере выше мы создали условный оператор с двумя возможными результатами.Если вкладка пользователя превышала 20 долларов, на консоль выводилось сообщение. Если на вкладке пользователя было меньше 20 долларов, на консоль выводилось другое сообщение.
В некоторых случаях нам может потребоваться оценить несколько условий и создать результаты для каждого из этих условий. Вот тут-то и появляется условие elif .
elif Пример инструкции Python
Вернемся к нашему предыдущему примеру сэндвича. Предположим, мы хотим получить четыре потенциальных результата от нашей программы, в зависимости от начинки сэндвича, которую выбирает покупатель.Эти:
- Рулет с ветчиной: 1,75 доллара
- Рулет с сыром: 1,80 доллара
- Рулет с беконом: 2,10 доллара
- Рулет с другой начинкой: 2,00 доллара
Мы можем использовать следующий код для расчета стоимости заказа клиента:
sandwich_order = "Рулет с беконом" если sandwich_order == "Рулет из ветчины": print ("Цена: 1,75 доллара") elif sandwich_order == "Сырный рулет": print ("Цена: 1,80 доллара") elif sandwich_order == "Рулет с беконом": print ("Цена: 2,10 доллара") еще: print ("Цена: 2 доллара.00 ")
Наш код возвращает: Цена: 2,10 доллара США
.
У нашего кода есть четыре возможных результата:
- Если клиент заказывает рулет из ветчины, выполняется инструкция «if». Это напечатает на консоли «Цена: 1,75 доллара США».
- Если клиент заказывает сырный рулет, выполняется содержимое первого оператора «elif». Это напечатает на консоли «Цена: 1,80 доллара США».
- Если клиент заказывает рулет с беконом, выполняется содержимое второго оператора «elif».Это напечатает на консоли «Цена: 2,10 доллара США».
- Мы отображаем «Цена: 2,10 доллара США» на консоли, если клиент заказывает рулон с другим наполнением.
Мы использовали оператор if для проверки определенного условия. Наши два блока elif для тестирования в альтернативных условиях. Оператор else возвращает значение в случае, если никакие условия не выполняются.
Мы могли бы добавить еще операторов elif в наш приведенный выше код, если бы захотели. Если бы мы добавили новый Tuna Roll в наше сэндвич-меню, мы могли бы добавить новый оператор elif .Этот новый оператор может выводить на консоль цену нового пункта меню.
Python вложенные операторы if
Вложенный оператор if является оператором if внутри другого оператора if. Вложенные операторы if позволяют проверить, выполняется ли условие после того, как другое условие уже выполнено.
Вернемся к нашему предыдущему примеру сэндвича. Предположим, мы хотим проверить, заказал ли покупатель ролл, который есть в нашем меню. Мы хотим сделать это до того, как проверим цены заказа клиента.
Python Пример вложенного оператора if
Сообщение должно быть напечатано на экране с нашей ценой по умолчанию для пунктов, не входящих в меню, если клиент заказал еще один бутерброд custom . Пользовательские бутерброды - это бутерброды, которых нет в нашем меню (например, рулет с маслом или рулет с джемом).
Однако, если клиент заказал бутерброд, который есть в нашем меню, мы должны проверить цену на этот бутерброд. Мы могли бы сделать это с помощью этого кода:
sandwich_order = "Рулет с другой начинкой" if sandwich_order! = "Рулет с другой начинкой": если sandwich_order == "Рулет из ветчины": print ("Цена: 1 доллар.75 ") если sandwich_order == "Сырный рулет": print ("Цена: 1,80 доллара") elif sandwich_order == "Рулет с беконом": print ("Цена: 2,10 доллара") еще: print ("Цена: $ 2,00")
Наш код возвращает: Цена: 2,00 доллара США
.
Во-первых, наша программа оценивает, не равен ли наш заказ на сэндвич Рулон с другой начинкой . Наша программа сравнивает заказанный сэндвич со списком сэндвичей в нашем меню. Это происходит, если мы заказали в меню бутерброд.
Если мы заказали рулон с начинкой, которого нет в нашем меню, выполняется содержимое оператора else в нашем коде.
В этом примере мы заказали рулет с начинкой, которого нет в нашем меню. Это означает, что оператор if sandwich_order! = Other Filled Roll оценивается как False, поэтому код в нашем операторе if выполняется.
А теперь предположим, что вместо этого мы заказали рулет из ветчины. Это приведет к тому, что наша первая инструкция if будет иметь значение true. Это связано с тем, что Рулет из ветчины не равен Рулет с другой начинкой. Наш заказ будет сравнен с указанным нами списком цен на бутерброды.
См. Repl.it из этого руководства:
Заключение
Оператор if else позволяет вам контролировать выполнение ваших программ. Сначала Python оценивает, истинно ли условие. Если условие неверно и существует оператор elif, оценивается другое условие.
Если никакие условия не выполняются и указан оператор else, выполняется содержимое оператора else. Используя условный оператор, вы можете указать программе выполнять блок кода только при выполнении условия.
Теперь вы готовы начать использовать эти операторы в своем собственном коде, как эксперт по Python! Чтобы узнать больше о кодировании на Python, прочтите наше полное руководство по программированию на Python.
Основное руководство по оператору Python if на практических примерах
Резюме : в этом руководстве вы узнаете, как использовать оператор Python if
для выполнения блока кода на основе условия.
Простой оператор if в Python
Оператор if
используется для выполнения блока кода на основе заданного условия.
Синтаксис оператора if
выглядит следующим образом:
Язык кода: Python (python)
if условие: if-block
Оператор if
сначала проверяет условие.
Если условие оценивается как Истина
, оно выполняет операторы в блоке if. В противном случае он игнорирует утверждения.
Обратите внимание, что двоеточие (:
), которое следует за условием
, очень важно.Если вы его забудете, вы получите синтаксическую ошибку.
Следующая блок-схема иллюстрирует статус if:
Например:
Язык кода: Python (python)
age = input ('Введите свой возраст:') если int (age)> = 18: print («Вы имеете право голосовать.»)
В этом примере вам предлагается ввести свой возраст. Если вы введете число, которое больше или равно 18
, на экране появится сообщение «Вы имеете право голосовать»
.В противном случае ничего не происходит.
Условие int (age)> = 18
преобразует входную строку в целое число и сравнивает его с 18.
Язык кода: Python (python)
Введите ваш возраст: 18 Вы имеете право голосовать.
См. Следующий пример:
Язык кода: Python (python)
age = input ('Введите свой возраст:') если int (age)> = 18: print («Вы имеете право голосовать») print («Пойдем и проголосуем.»)
В этом примере, если вы введете число, которое больше или равно 18
, вы увидите два сообщения.
В этом примере очень важен отступ. Любой оператор, следующий за , если оператор
должен иметь четыре пробела.
Если вы неправильно используете отступ, программа будет работать иначе. Например:
Язык кода: Python (python)
age = input ('Введите свой возраст:') если int (age)> = 18: print («Вы имеете право голосовать») print («Пойдем и проголосуем.»)
В этом примере последний оператор всегда выполняется независимо от условия
в операторе if
.Причина в том, что он не принадлежит , если блок
:
Язык кода: Python (python)
Введите свой возраст: 11 Пойдем голосовать.
Python if… else statement
Как правило, вы хотите выполнить действие, когда условие имеет значение True
, и другое действие, когда условие имеет значение False
.
Для этого используется оператор if ... else
.
Ниже показан синтаксис if...else
выписка:
Язык кода: Python (python)
, если условие: если-блок; еще: else-блок;
В этом синтаксисе if ... else
выполнит if-block
, если условие оценивается как True
. В противном случае он выполнит else-block
.
Следующая блок-схема иллюстрирует оператор if..else
:
В следующем примере показано, как использовать if...else
statement:
Язык кода: Python (python)
age = input ('Введите свой возраст:') если int (age)> = 18: print («Вы имеете право голосовать») еще: print («Вы не имеете права голосовать».)
В этом примере, если вы введете свой возраст с числом меньше 18, вы увидите сообщение » Вы не имеете права голосовать ".
как это:
Язык кода: Python (python)
Введите ваш возраст: 11 Вы не имеете права голосовать.
Python if… elif… else оператор
Если вы хотите проверить несколько условий и выполнить соответствующее действие, вы можете использовать if...elif ... else
заявление. elif
означает , иначе
.
Вот синтаксис, если оператор if ... elif ... else
:
Язык кода: Python (python)
if if-condition: если-блок elif elif-condition1: elif-block1 elif elif-condition2: elif-block2 ... еще: else-block
Оператор if ... elif ... else
проверяет каждое условие ( if-condition
, elif-condition1
, elif-condition2
,…) В том порядке, в котором они появляются в операторе, пока он не найдет тот, который оценивается как True
.
Когда оператор if ... elif ... else
находит его, он выполняет оператор, следующий за условием, и пропускает проверку остальных условий.
Если ни одно из условий не оценивается как True
, оператор if ... elif ... else
выполняет оператор в ветви else
.
Обратите внимание, что блок else
является необязательным. Если вы его опустите и ни одно из условий не будет Истина
, оператор ничего не сделает.
Следующая блок-схема иллюстрирует if...elif ... else
statement:
В следующем примере используется оператор if ... elif..else
для определения цены билета на основе возраста:
Язык кода: Python (python)
age = input ('Введите свой возраст : ') your_age = int (возраст) если your_age <5: ticket_price = 5 elif your_age <16: ticket_price = 10 еще: ticket_price = 18 print (f "Вы заплатите {ticket_price} за билет")
В этом примере:
- Если возраст ввода меньше 5, цена билета будет 5 долларов.
- Если входной возраст больше или равен 5 и меньше 16, цена билета составляет 10 долларов.
- В противном случае цена билета 18 долларов.
Сводка
- Используйте оператор
if
, если вы хотите запустить блок кода на основе условия. - Используйте оператор
if ... else
, если вы хотите запустить другой блок кода, если условие не соответствуетTrue
. - Используйте оператор
if ... elif ... else
, если вы хотите проверить несколько условий и запустить соответствующий блок кода, который следует за условием, которое оценивается какTrue
.
Вы нашли это руководство полезным?
Python For Loops и If, объединенные (Учебное пособие по науке о данных)
В прошлый раз я писал о Python For Loops и If. Сегодня мы поговорим о том, как их совместить. В этой статье я покажу вам - на нескольких практических примерах - как объединить цикл for с другим циклом for и / или с оператором if!
Примечание. Это практическое руководство. Я настоятельно рекомендую заняться кодированием вместе со мной - и, если у вас есть время, решить упражнения в конце статьи! Если вы еще этого не сделали, сначала прочтите эти статьи:
Примечание 2. На мобильных устройствах разрывы строк в фрагментах кода могут показаться сложными.Но если вы скопируете и вставите их в свой блокнот Jupyter, вы увидите, что фактические разрывы строк намного четче!
Цикл For внутри цикла for - он же вложенный цикл for
Чем сложнее проект данных, над которым вы работаете, тем выше вероятность того, что вы столкнетесь с ситуацией, когда вам придется использовать вложенный цикл for. Это означает, что вы выполните итерацию, а затем другую итерацию внутри этой итерации.
Допустим, у вас есть девять названий телешоу, разделенных на три категории: комедии, мультфильмы, драмы.Они представлены во вложенном списке Python («списки в списке»):
my_movies = [['Как я встретил вашу маму', 'Друзья', 'Кремниевая долина'], ["Гриффины", "Южный парк", "Рик и Морти"], ["Во все тяжкие", "Игра престолов", "The Wire"]]
Вы хотите подсчитать символы во всех этих заголовках и вывести результаты один за другим на свой экран в следующем формате:
"Название [movie_title] составляет [X] символов."
Как бы вы это сделали? Поскольку у вас есть три списка в вашем основном списке, чтобы получить названия фильмов, вам нужно пройти через свой список my_movies
- и внутри этого списка также через каждый подсписок:
для подсписка в my_movies: для movie_name в подсписке: char_num = len (имя_фильма) print ("Заголовок" + имя_фильма + "составляет" + str (char_num) + "символов.")
Примечание: помните, что len ()
- это функция Python, которая возвращает целое число. Чтобы поместить это целое число в «печатаемое» предложение, мы должны сначала превратить его в строку. Я писал об этом в предыдущем туториале Python For Loops.
Я знаю, Python для циклов может быть трудно понять в первый раз ... Вложенные циклы for еще сложнее. Если у вас возникли проблемы с пониманием того, что именно происходит выше, возьмите ручку и бумагу и попробуйте смоделировать весь сценарий, как если бы вы были компьютером - пройдите цикл шаг за шагом и запишите результаты.
Еще одно:
Синтаксис! Правила те же, что вы узнали, когда мы обсуждали простые циклы for - единственное, что я хотел бы подчеркнуть и на что вам обязательно стоит обратить внимание, - это отступы . Использование правильных отступов - единственный способ сообщить Python, в каком цикле for (внутреннем или внешнем) вы хотите применить свой блок кода. Просто проверьте и попытайтесь найти различия между этими тремя примерами:
Пример 1
Пример 2
Пример 3
Оператор If в цикле for
Внутри цикла for вы также можете использовать операторы if.
Позвольте мне использовать один из наиболее известных примеров упражнений, которые вам могут дать начальный вопрос на собеседовании с младшим специалистом по данным.
Задача:
Перебрать все числа до 99. Выведите «fizz» для каждого числа, которое делится на 3, выведите «buzz» для каждого числа, которое делится на 5, и выведите «fizzbuzz» для каждого числа, которое делится на 3. и на 5! Если число не делится ни на 3, ни на 5, выведите тире (‘-‘)!
Вот решение!
для i в диапазоне (100): если я% 3 == 0 и я% 5 == 0: печать ('fizzbuzz') элиф я% 3 == 0: печать ('шипение') элиф я% 5 == 0: печать ('жужжание') еще: Распечатать('-')
Как видите, оператор if внутри цикла for идеально подходит для оценки списка чисел в диапазоне (или элементов в списке) и помещения их в разные сегменты, тегирования их или применения к ним функций - или просто распечатайте их.
Еще раз: когда вы используете оператор if в цикле for, будьте предельно осторожны с отступами , потому что, если вы их неправильно разместите, вы можете получить ошибки или поддельные результаты!
Понравилась статья? Если да, то вам понравится этот 6-недельный курс по науке о данных на Data36: Первый месяц для младшего специалиста по данным . Это 6-недельная симуляция работы младшего специалиста по данным в реалистичном стартапе. Посмотрите здесь: https: // data36.com / jds !
Перерыв
В Python есть специальный инструмент потока управления , который довольно часто бывает полезен при использовании операторов if внутри циклов for. А это оператор break
.
Сможете ли вы найти первое 7-значное число, которое делится на 137? (Первый и только первый.)
Вот одно решение:
для i в диапазоне (0, 10000000, 137): если len (str (i)) == 7: печать (я) перерыв
Этот цикл принимает каждое 137-е число ( для i в диапазоне (0, 10000000, 137)
) и проверяет на каждой итерации, имеет ли число 7 цифр или нет (, если len (str (i)
) == 7 ).Как только он дойдет до первого 7-значного числа, оператор if будет иметь вид True
, и произойдут две вещи:
-
print (i)
- »Число выводится на экран. -
break
выходит из цикла for, поэтому мы можем убедиться, что первое 7-значное число было также последним 7-значным числом, которое было напечатано на экране.
Дополнительные сведения об операторе break
(и его брате-близнеце: операторе continue
) в исходной документации Python3: здесь.
Примечание: вы можете решить эту задачу более элегантно с помощью цикла while. Однако я еще не написал руководство по циклу while, поэтому я выбрал решение для цикла for + break
!
Проверьте себя!
Пришло время проверить, удалось ли вам освоить оператор if, циклы for и их комбинацию! Попробуем решить это небольшое тестовое задание!
Создайте сценарий Python, который определяет ваш возраст максимум за 8 попыток! Скрипт может задать вам только один тип вопросов: угадать ваш возраст! (е.грамм. «Вам 67 лет?») И вы можете ответить только на один из трех вариантов:
На основе вашего ответа компьютер может придумать другое предположение, пока не узнает ваш точный возраст.
Примечание: для решения этой задачи вам также придется изучить новую функцию. Это функция input ()
! Подробнее: здесь.
Готовы? 3. 2. 1. Вперед!
Решение
Вот мой код.
Примечание 1: Также можно решить задачу с помощью цикла while.Опять же: поскольку я еще не писал о циклах while, я покажу вам решение для цикла for.
Примечание 2: Если у вас есть альтернативное решение, пожалуйста, не стесняйтесь поделиться им со мной и другими читателями в разделе комментариев ниже!
вниз = 0 вверх = 100 для i в диапазоне (1,10): guessed_age = int ((вверх + вниз) / 2) answer = input ('Вы' + str (guessed_age) + "лет?") если answer == 'правильно': print ("Красиво") перерыв elif answer == 'less': up = guessed_age elif answer == 'еще': вниз = отгаданный_ возраст еще: print ('неправильный ответ')
Моя логика такова:
ШАГ 1) Я устанавливаю диапазон от 0 до 100 и предполагаю, что возраст «игрока» будет между этими двумя значениями.
вниз = 0
вверх = 100
ШАГ 2) Скрипт всегда запрашивает среднее значение этого диапазона (при первой попытке это 50
):
guessed_age = int ((вверх + вниз) / 2) answer = input ('Вы' + str (guessed_age) + "лет?")
ШАГ 3) Когда у нас есть ответ «игрока», есть четыре возможных сценария:
- Если предполагаемый возраст верен, сценарий завершается и возвращает некоторый ответ.
, если answer == 'правильно': print ("Красиво") перерыв
- Если ответ «меньше», мы начинаем итерацию заново, но перед этим мы устанавливаем максимальное значение возрастного диапазона равным предполагаемому возрасту.(Таким образом, во второй итерации сценарий будет угадывать среднее значение от 0 до 50.)
elif answer == 'less': up = guessed_age
- Мы делаем то же самое для ответа «больше», за исключением того, что в этом случае мы меняем минимальное (а не максимальное) значение:
elif answer == 'more': вниз = отгаданный_ возраст
- И в итоге мы исправляем неправильные ответы и опечатки:
еще: print ('неправильный ответ')
Вы нашли лучшее решение?
Поделитесь им в комментариях ниже!
Заключение
Теперь у вас есть представление о:
- Python вложен в циклы for и
- для циклов и операторов if вместе.
Они не обязательно считаются основами Python; это больше похоже на переход на средний уровень. Их использование требует твердого понимания логики Python3, а также большого количества практики.
Из серии руководств Python for Data Science Basics осталось всего два эпизода! Продолжайте и продолжайте изучать основы синтаксиса Python!
Ура,
Томи
Как использовать Python if Заявление
Выражение if является движущей силой логического программирования.В результате лучшее понимание Python , если , является значительным дополнением к вашим навыкам программирования на Python.
Хотите узнать больше об операторе Python if ? Не беспокойтесь, здесь мы объясним, как использовать условие Python if для управления вашей программой.
Как оператор if работает в Python
Обычно условные операторы в Python начинаются с , если , и без него они вообще вряд ли логичны.Однако условия - это набор правил, определенных программистом, которые проверяют, является ли конкретное событие истинным или ложным. По сути, они проверяют достоверность события.
Оператор if в Python обычно принимает следующий формат:
, если событие истинно:
Выполнить некоторые команды ...
Хотя оператор if может работать отдельно, другие условия, такие как elif и else , могут поддерживать его, чтобы применить другие правила.Однако вы также можете использовать такие операторы, как , а не , и , или , и в с условием if Python.
Python также позволяет использовать оператор if непосредственно с потоками управления, такими как цикл for . Давайте посмотрим, как использовать оператор if в каждом из этих случаев в приведенных ниже примерах.
Как использовать операторы Python if и if ... else
С условием if вы можете указать Python выполнить набор команд, если событие истинно:
, если 5> 3:
print ("Действительный")
Вывод: Действительный
Однако комбинация условий if else полезна, когда вам нужно выполнить другой набор команд, если первый неверен.Посмотрим на это на практике:
a = 10
b = 3
if a == b:
print («Они такие же»)
else:
print («Они не такие»)
Вывод: они не те тот же
Вы можете проверить равенство двух указанных выше переменных напрямую, вернув Python логическое значение. Например, печать a == b возвращает False:
a = 10
b = 3
print (a == b)
Вывод: неверно
Как использовать Python if...elif ... else Условия
В то время как языки программирования, такие как JavaScript, используют , иначе , Python использует elif . Однако else обычно завершает набор условных операторов в Python. Но если вы все еще хотите проверить другие события перед завершением условий, вам нужно использовать оператор elif . Давайте посмотрим на пример использования Python elif ниже:
a = 10
b = 3
if b == a:
print (a + b)
elif b * a == 30:
print (b - a)
else:
print («невозможно»)
Выход: -7
В приведенном выше коде Python выполняет команду в операторе if , если его событие истинно.В противном случае он выполняет инструкцию elif . В противном случае он выводит инструкцию else .
Вы можете использовать более одного elif и else для выполнения других условий:
myList = ['Python', 'MUO', 'Hello']
if ('Python') в myList:
print («Нет»)
elif 'N' в myList [1]:
print («MUO ")
elif 'e' в myList [2]:
print (" Hello ")
else:
print (" None is true ")
Вывод: Hello
Как использовать ключевые слова "in", "and", "and" или "ключевые слова с Python, если
Вы можете использовать ключевое слово in с оператором if , чтобы проверить, присутствует ли элемент в списке или массиве:
myList = ['Python', 'MUO', 'Hello']
if ('Python') в myList:
print («Это в списке»)
Вывод: это в списке
Вы также можете использовать выражения и с , если , чтобы проверить более одного элемента:
myList = ['Python', 'MUO', 'Hello']
if ('Python' и 'Hello') в myList:
print («Hello Python»)
Вывод: Hello Python
Связанный: Шпаргалка по Python RegEx для начинающих программистов
Чтобы проверить, есть ли какой-либо элемент в списке, вы можете использовать ключевое слово или :
myList = ['Python', 'MUO', 'Hello']
if ('Python' или 'Bags') в myList:
print («Один из них в списке»)
Вывод: один из них есть в списке
Как использовать Python if с циклом for
Вы также можете управлять тем, что происходит в цикле для с условием , если .Например, вы можете установить условия при просмотре списка или массива с помощью цикла Python for. Взгляните на приведенный ниже пример кода, чтобы увидеть, как это работает:
myList = myList = ['Python', 'MUO', 'Hello']
myList2 = [«Fish», «Gold», «Bag»]
if len (myList) == 3:
для элементов в myList :
print (items)
else:
для items2 в myList2:
print (items2)
Приведенный выше код проверяет, равна ли длина myList ровно трем, и просматривает его в цикле, если утверждение истинно.В противном случае он выполняет оператор else и выводит каждый элемент в myList2 .
Однако вы также можете изменить этот код, чтобы печатать все элементы в любом списке ровно с четырьмя счетчиками слов:
myList = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']
myList2 = [«Fish», «Gold», «Bag»]
для товаров в ( myList + myList2):
если len (items) == 4:
print (items)
Приведенный выше код сначала объединяет два списка.Затем он проверяет, есть ли в обоих списках элементы с ровно четырьмя счетчиками слов, и зацикливает их, если утверждение истинно.
Как использовать оператор if в функции Python
Условие if также может пригодиться при написании функции на Python. Как и в простом коде, условие , если может определять, что происходит в функции.
Связанный: Как создать, импортировать и повторно использовать свой собственный модуль в Python
Давайте посмотрим, как использовать оператор if и другие условия в функции Python путем рефакторинга последнего блока кода в предыдущем разделе выше:
def checkString (list1, list2):
для элементов в (list1 + list2):
if len (items) == 4:
print (items)
break
else:
print ("Невозможно")
List1 = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']
List2 = ["Fish", "Gold", "Bag"]
checkString (List, List2)
Как и код в предыдущем разделе, вышеупомянутая функция выводит все элементы ровно с четырьмя счетчиками слов.Однако оператор break гарантирует, что выполнение остановится после печати последнего элемента, удовлетворяющего условию. Если событие в операторе if ложно, условие else выполняет команду внутри него.
Использование оператора if с лямбда-функцией Python
Вы также можете использовать оператор if с анонимной лямбда-функцией. Все, что вам нужно, - это базовое понимание лямбда-функции Python для этого.
Давайте перепишем функцию из предыдущего раздела как лямбда-функцию, чтобы понять, как это работает:
checkString = lambda a, b: [y for y in (a + b) if len (y) == 4]
print (checkString (List1, List2))
Вывод: ['Четыре', 'Рыба', «Золото»]
Приведенная выше лямбда-функция дает тот же результат, что и обычная функция, которую мы использовали в предыдущем разделе. Однако здесь мы выразили код, создав понимание списка Python.
Как использовать оператор if в понимании списка Python
Также можно использовать оператор if с циклом for в понимании списка. В этом примере давайте перепишем предыдущий код для печати всех элементов с четырьмя счетчиками слов в понимании списка:
myList = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']
myList2 = [«Fish», «Gold», «Bag»]
lis = [списки для списков в (myList + myList2), если len (lists) равно 4]
print (lis)
Вывод: ['Four', 'Fish', 'Gold']
Связанный: Как использовать составные части списка Python (и когда их не использовать)
Вы также можете использовать , если...и или , если ... или в понимании списка. Во-первых, давайте посмотрим на вариант использования if ... или в понимании списка Python:
myList = ['Python', 'MUO', 'Hello', 'Books', 'Pizza', 'Four']
myList2 = [«Fish», «Gold», «Bag»]
lis = [списки для списков в (myList + myList2) if ('P' в списках или 'F' в списках)]
print (lis)
Вывод: ['Python', 'Pizza', 'Four', 'Fish']
Код проверяет, есть ли в них элементы с алфавитом «P» или «F», и выводит их, если утверждение верно.
Мы также можем использовать if ... и для печати элементов, в которых есть как строки «P», так и «o»:
lis = [списки для списков в (myList + myList2) if ('P' в списках и 'o' в списках)]
print (lis)
Вывод: ['Python']
Приведенный выше код выводит только «Python», поскольку это единственный элемент в списке, в котором есть как «P», так и «o».
Как использовать Nested if в понимании списка Python
В некоторых случаях вы также можете использовать вложенное условие , если в понимании списка.Давайте посмотрим на пример понимания списка, который выводит все числа, которые могут делить три и пять, с использованием вложенных условий , если :
B = диапазон (31)
A = [x для x в B, если x% 3 == 0, если x% 5 == 0]
print (A)
Вывод: [0, 15, 30]
Однако вы можете делать то, что делает приведенный выше код, используя понимание набора вместо списка. Но на этот раз вы получите результат в виде заданного литерала:
A = {x для x в B, если x% 3 == 0, если x% 5 == 0}
print (A)
Вывод: {0, 30, 15}
Не стесняйтесь поэкспериментировать с другими примерами понимания списка, изменив их также, чтобы установить понимание.
Логические операторы управления многими автоматизированными программами
Логические операторы являются строительными блоками многих кодируемых сегодня программ, и это ничем не отличается от программ, работающих на Python. Однако, как мы заявляли ранее, условные операторы дают вам лучшее представление о вашем коде, поэтому вы можете настраивать вещи так, как хотите.
Реальные проекты, такие как разработка игр, машинное обучение и веб-разработка, зависят от этих условных операторов для автоматизации задач, что позволяет им предоставлять пользователям желаемые результаты.Итак, начинающему программисту необходимо больше узнавать о них и о том, как они работают, для кодирования динамических и отзывчивых современных технических программ.
Как использовать цикл while в Python
Хотя циклы являются фундаментальной частью кодирования, узнайте, как их лучше всего использовать здесь.
Читать далее
Об авторе
Идову Омисола
(102 опубликованных статей)
Idowu увлечен всем, что связано с умными технологиями и производительностью.В свободное время он играет с кодированием и переключается на шахматную доску, когда ему скучно, но он также любит время от времени отвлекаться от рутины. Его страсть показывать людям современные технологии побуждает его писать больше.
Более
От Идову Омисола
Подпишитесь на нашу рассылку новостей
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться
Понимание заявления Python If-Else
Принятие решений является важной концепцией любого языка программирования и требуется, когда вы хотите выполнить код, когда выполняется определенное условие.В этом блоге вы узнаете о знаменитом выражении if-else в Python. Мы будем использовать Jupyter Notebook для демонстрации кода.
Есть несколько форм операторов if-else. Давайте изучим их один за другим.
Если заявление
Он использует ключевое слово if , за которым следует условие.
Синтаксис:
при условии:
# инструкция для выполнения, если условие истинно
Ниже приведен весь рабочий процесс того, как работают операторы if:
Сначала проверяется тестовое выражение.Если выражение истинно, выполняется тело оператора if. Если это ложь, выполняется оператор, присутствующий после оператора if. В любом случае любая строка кода присутствует снаружи, если оператор оценивается по умолчанию.
Чтобы лучше понять это, воспользуемся примером:
а = 20
, если a> 50:
print ("Это тело if")
print («Это вне блока if»)
Поскольку 20 не больше 50, оператор, присутствующий внутри блока if, не будет выполняться.Вместо этого выполняется оператор, находящийся вне блока if.
В приведенном ниже коде будут выполняться оба оператора печати, поскольку a больше 50.
До сих пор мы могли указать операторы, которые будут выполняться, если условие истинно. Теперь, если вы хотите оценить операторы, которые определяют, является ли условие действительным, и если отдельный набор операторов ложен, вы можете использовать условный оператор if-else .
Заявление If-else
Оператор if-else используется для выполнения как истинной, так и ложной части данного условия.Если условие истинно, выполняется код блока if, а если условие ложно, выполняется код блока else.
Синтаксис:
if (условие):
# Выполняет этот блок, если условие верно
иначе:
# Выполняет этот блок, если условие ложно
Здесь следует отметить, что Python использует отступы в обоих блоках для определения объема кода. В других языках программирования для этой цели часто используются фигурные скобки.
Ниже представлен весь рабочий процесс того, как работает оператор if-else.
Сначала проверяется тестовое выражение. Если это правда, операторы, присутствующие в теле блока if, будут выполнены. Затем выполняются операторы, представленные под блоком if. Если тестовое выражение дает ложные результаты, выполняются операторы, присутствующие в теле else, а затем выполняются операторы ниже if-else.
Следующий пример лучше иллюстрирует, как работает if-else:
Поскольку значение «i» делится на два, выполняется оператор if.
Поскольку значение «i» не делится на два, выполняется инструкция else.
Давайте теперь посмотрим, что такое вложенный оператор IF и как он работает.
Изучите операции с данными в Python, строки, условные операторы, обработку ошибок и широко используемую веб-платформу Python Django с помощью курса Python Training.
БЕСПЛАТНЫЙ курс Data Science с курсом Python
Начните изучение Data Science с Python для БЕСПЛАТНОГО обучения
Вложенный оператор IF
Если оператор if присутствует внутри другого оператора if, он называется вложенным оператором IF.Такая ситуация возникает, когда вам нужно отфильтровать переменную несколько раз.
Синтаксис:
, если (условие1):
# Выполняется, если выполняется условие 1
, если (условие2):
# Выполняется, если условие 2 верно
# Condition2 здесь заканчивается
# Здесь заканчивается Condition1
Во вложенных операторах IF всегда следует заботиться об отступах, чтобы определить область действия каждого оператора. Вы можете иметь столько уровней вложенности, сколько требуется, но это делает программу менее оптимизированной и, как следствие, может быть более сложной для чтения и понимания.Следовательно, вы всегда должны стараться свести к минимуму использование вложенных операторов IF.
Рабочий процесс ниже демонстрирует, как работают вложенные операторы IF:
Следующий пример показывает, как работает вложенный IF: У нас есть число, и мы собираемся проверить, больше ли оно или меньше 25. Если число меньше 25, мы проверим, является ли оно нечетное или четное число. Если число больше 25, мы напечатаем, что число больше 25.
До сих пор с IF и if-else мы видели только бинарный подход. Предположим, у нас есть проблема с несколькими условиями. В этом случае на помощь приходит инструкция if-elif-else .
Заявление If-Elif-Else
Проверяет условие оператора if. Если это ложь, выполняется инструкция elif. Если условие elif ложно, выполняется инструкция else.
Синтаксис:
if (условие):
выписка
elif (состояние):
выписка
.
.
иначе:
Заявление
Ниже представлена блок-схема, показывающая, как работает лестничная диаграмма if-elif-else. Проверяется Test Expression1. Если это подтвердится, выполняется оценка тела if. Если это ложь, то управление переходит к продолжающемуся Test Expression2. Если это правда, выполняется тело elif1. Если оно ложно, проверяется тестовое выражение3. Если true, выполняется тело elif2. Если это ложь, оценивается тело else. Затем проверяется любой оператор ниже в if-elif.
В приведенной ниже программе используется лестничная диаграмма if-elif-else для проверки того, является ли буква гласной или согласной.
Теперь, когда мы рассмотрели основы if, else, elif и вложенных IF, давайте выполним несколько упражнений.
Бесплатный курс: Программирование на Python
Изучите основы программирования на PythonЗарегистрируйтесь сейчас
Программа для проверки наибольшего из трех чисел
В приведенном выше коде мы сначала проверяем, больше ли «a», чем «b» и «c».Затем мы печатаем «а» как наибольшее число.
Если это ложь, мы затем проверяем, больше ли «b», чем «a» и «c». Если это так, мы печатаем «b» как наибольшее число. В противном случае «c» - это наибольшее число.
Эту же программу можно создать с помощью вложенного оператора IF следующим образом:
Вот еще одно упражнение, которое позволит вам проверить, делится ли число на два, три или пять.
Проблема с приведенным выше кодом заключается в том, что 12 также делится на три, но мы не можем его распечатать.В этом случае нам нужно использовать только оператор if.
Последний оператор вывода неверен, так как вывод делится на два и три. Чтобы устранить эту проблему, используйте переменную counter .
Хотите перейти к программированию? Пройдите курс обучения Python и начните свою карьеру в качестве профессионального программиста на Python.
Заключение
Я надеюсь, что этот блог помог вам понять условные операторы в Python.Вы узнали о if, else, if-elif-else и вложенных операторах IF и попрактиковались в нескольких практических упражнениях. Чтобы узнать больше, посмотрите это заявление Python If Else. Чтобы получить более глубокое обучение программированию на Python, пройдите наш учебный курс Python.
.