Python цикл if: Циклы for и while, операторы break и continue, волшебное слово else

Содержание

синтаксис, блоки else/elif и примеры

При изучении программирования в качестве практики часто приходится создавать «идеальные программы», которые в реальном мире работают совсем не так.

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

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

  1. Оператор-выражение if
  2. Оператор-выражение if-else
  3. Оператор-выражение if-elif-else
  4. Цикл while
  5. Цикл for
  6. Оператор-выражение break
  7. Оператор-выражение 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 пропускаются.

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

  1. Спишите последний вариант кода программы из урока. Дополните ее веткой else, обрабатывающие случаи, когда пользователь вводит числа не входящие в заданные четыре диапазона. Подумайте, почему в первой версии программы (когда использовались не связанные друг с другом условные операторы) нельзя было использовать else, а для обработки таких, не входящих в диапазоны, случаев пришлось бы писать еще один if?

  2. Усовершенствуйте предыдущую программу, обработав исключение ValueError, возникающее, когда вводится не целое число.

  3. Напишите программу, которая запрашивает на ввод число. Если оно положительное, то на экран выводится цифра 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('Окидоки')

Бесконечный цикл в Pythonwhile 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. 1 Исправьте следующий код:

    score = int(input("Ваш балл за экзамен")
    if score > 80:
        print("Хороший результат.")

  2. 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 помогают кодерам контролировать выполнение своих программ.

Найди свой учебный лагерь