Инструкция if-elif-else, проверка истинности, трехместное выражение if/else

Условная инструкция if-elif-else (её ещё иногда называют оператором ветвления) — основной инструмент выбора в Python. Проще говоря, она выбирает, какое действие следует выполнить, в зависимости от значения переменных в момент проверки условия.

Синтаксис инструкции if

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

if test1:
    state1
elif test2:
    state2
else:
    state3

Простой пример (напечатает ‘true’, так как 1 — истина):

>>> if 1:
...     print('true')
... else:
...     print('false')
...
true

Чуть более сложный пример (его результат будет зависеть от того, что ввёл пользователь):

a = int(input())
if a < -5:
    print('Low')
elif -5 <= a <= 5:
    print('Mid')
else:
    print('High')

Конструкция с несколькими elif может также служить отличной заменой конструкции switch — case в других языках программирования.

Проверка истинности в Python

  • Любое число, не равное 0, или непустой объект — истина.
  • Числа, равные 0, пустые объекты и значение None — ложь
  • Операции сравнения применяются к структурам данных рекурсивно
  • Операции сравнения возвращают True или False
  • Логические операторы and и or возвращают истинный или ложный объект-операнд

Логические операторы:

X and Y

Истина, если оба значения X и Y истинны.

X or Y

Истина, если хотя бы одно из значений X или Y истинно.

not X

Истина, если X ложно.

Трехместное выражение if/else

Следующая инструкция:

if X:
    A = Y
else:
    A = Z

довольно короткая, но, тем не менее, занимает целых 4 строки. Специально для таких случаев и было придумано выражение if/else:

A = Y if X else Z

В данной инструкции интерпретатор выполнит выражение Y, если X истинно, в противном случае выполнится выражение Z.

>>> A = 't' if 'spam' else 'f'
>>> A
't'

Для вставки кода на Python в комментарий заключайте его в теги <pre><code>Ваш код</code></pre>

Свежее

  • Модуль csv — чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ

Категории

  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов

Полезные материалы

  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Мы в соцсетях

Конструкция else + if = elif

Функция get_type_of_sentence() различает только вопросительные и обычные предложения. Добавим в нее поддержку восклицательных предложений:

def get_type_of_sentence(sentence):
    last_char = sentence[-1]
    if last_char == '?':
        sentence_type = 'question'
    if last_char == '!':
        sentence_type = 'exclamation'
    else:
        sentence_type = 'normal'
    return 'Sentence is ' + sentence_type
print(get_type_of_sentence('Who?'))  # => 'Sentence is normal'
print(get_type_of_sentence('No'))    # => 'Sentence is normal'
print(get_type_of_sentence('No!'))   # => 'Sentence is exclamation'

Мы добавили проверку восклицательных предложений — exclamation.

Технически эта функция работает, но вопросительные предложения трактует неверно. Еще в ней есть проблемы с точки зрения семантики:

  • Наличие восклицательного знака проверяется в любом случае, даже если уже обнаружился вопросительный знак
  • Ветка else описана для второго условия, но не для первого. Поэтому вопросительное предложение становится "normal"

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

def get_type_of_sentence(sentence):
    last_char = sentence[-1]
    if last_char == '?':
        sentence_type = 'question'
    elif last_char == '!':
        sentence_type = 'exclamation'
    else:
        sentence_type = 'normal'
    return 'Sentence is ' + sentence_type
print(get_type_of_sentence('Who?'))  # => 'Sentence is question'
print(get_type_of_sentence('No'))    # => 'Sentence is normal'
print(get_type_of_sentence('No!'))   # => 'Sentence is exclamation'

Теперь все условия выстроились в единую конструкцию. elif означает — «если не выполнено предыдущее условие, но выполнено текущее». Получается такая схема:

  • если последняя буква ?, то 'question'
  • если последняя буква !, то
    'exclamation'
  • остальные варианты — 'normal'

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

Задание

На электронной карте Вестероса, которую реализовал Сэм, союзники Старков отображены зелёным кружком, враги — красным, а нейтральные семьи — серым.

Напишите для Сэма функцию who_is_this_house_to_starks(), которая принимает на вход фамилию семьи и возвращает одно из трёх значений: 'friend', 'enemy', 'neutral'.

Правила определения:

  • Друзья ('friend'): 'Karstark', 'Tully'
  • Враги ('enemy'): 'Lannister'
    , 'Frey'
  • Любые другие семьи считаются нейтральными ('neutral')

Примеры вызова:

print(who_is_this_house_to_starks('Karstark'))  # => 'friend'
print(who_is_this_house_to_starks('Frey'))      # => 'enemy'
print(who_is_this_house_to_starks('Joar'))      # => 'neutral'
print(who_is_this_house_to_starks('Ivanov'))    # => 'neutral'
Упражнение не проходит проверку — что делать? 😶

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

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

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

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно 🙄

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

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

Определения

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics

Python While Loops

❮ Предыдущая Далее ❯


Циклы Python

Python имеет две примитивные команды цикла:

  • циклы while
  • для петель

Цикл while

С помощью цикла while мы можем выполнять набор операторов до тех пор, пока выполняется условие.

Пример

Вывести i, если i меньше 6:

i = 1
, пока i print(i)
  i += 1

Попробуйте сами »

Примечание: не забудьте увеличить i, иначе цикл будет продолжаться вечно.

Цикл while требует, чтобы соответствующие переменные были готовы, в этом примере нам нужно определить индексирующую переменную, i, которому мы присвоили значение 1.


Оператор break

С помощью оператора break мы можем остановить цикл, даже если в то время как условие истинно:

Пример

Выход из цикла, когда i равно 3:

i = 1
в то время как i print(i)
 если я == 3:
    break
  i += 1

Попробуйте сами »



Оператор continue

С помощью оператора continue мы можем остановить текущей итерации и перейти к следующей:

Пример

Перейти к следующей итерации, если i равно 3:

i = 0
, в то время как i я += 1
  if i == 3:
    continue
  print(i)

Попробуйте сами »


Оператор else

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

Пример

Вывести сообщение, если условие не выполнено:

i = 1
while i print(i)
  i += 1
else:
  print(«i больше не меньше 6»)

Попробуйте сами »


Проверьте себя с помощью упражнений

Упражнение:

Выведите i до тех пор, пока i меньше 6.

я = 1
 я < 6
  печать (я)
  я += 1
 

Начать упражнение


❮ Предыдущий Далее ❯


NEW

Мы только что запустили
Видео W3Schools

Узнать

COLOR PICKER
КОД ИГРЫ

Играть в игру




Top Tutorials
Учебник по HTML
Учебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по SQL
Учебник по Python
Учебник по W3.CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery

900317 Основные ссылки Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery

Top Examples Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры How To
Примеры SQL
Примеры Python
Примеры W3. CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery


FORUM | О

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

Авторское право 1999-2022 по данным Refsnes. Все права защищены.
W3Schools работает на основе W3.CSS.

Python If – синтаксис и примеры

Содержание

  • Введение
  • Синтаксис Python If
  • Пример 1: Python If
  • Пример 2: Python If Оператор, где логическое выражение равно False: Пример 3 с Python
  • 11 9 Условия в выражении
  • Пример 4: Python If с выражением, вычисляющим число
  • Пример 5: Python If с несколькими операторами в блоке
  • Пример 6: Вложенные операторы If
  • Резюме

Оператор Python If — это условный оператор, в котором набор операторов выполняется на основе результата условия.

В этом примере Python мы узнаем о синтаксисе оператора Python If и различных сценариях, в которых можно использовать оператор Python If .

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

Синтаксис Python If

Ниже приведен синтаксис оператора if в Python.

 если логическое_выражение:
    оператор(ы) 

Обратите внимание на отступ, предусмотренный для оператора(ов) внутри блока if и двоеточие : после логического выражения.

Если логическое выражение возвращает значение true, выполняется оператор(ы) блока if. В противном случае оператор(ы) не выполняются, и выполнение программы продолжается с операторами после оператора if, если они есть.

Ниже приведена блок-схема, изображающая выполнение условий и операторов в операторе if.

Пример 1: Python If

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

Программа Python

 а = 2
б = 5
если а<б:
print(a, 'меньше', b) 

Выполнить

Вывод

Запустите программу, и вы увидите следующий вывод в консоли.

 2 меньше 5 

Тривиально, что условие, представленное в приведенном выше операторе if, оценивается как истинное, поэтому выполняется оператор(ы) внутри блока if.

Пример 2. Оператор Python If, в котором логическое выражение имеет значение False

В этом примере мы напишем оператор if , в котором логическое выражение или условие оцениваются как ложные.

Программа Python

 а = 24
б = 5
если а<б:
print(a, 'меньше', b) 

Выполнить

Вывод

 

Условие, указанное в операторе if, оценивается как ложное, поэтому оператор внутри блока if не выполняется.

Пример 3: Python If с несколькими условиями в выражении

Если вам нужно написать несколько условий в одном выражении, используйте логические операторы, чтобы соединить их и создать составное условие. Логические операторы могут быть: python и, python или или python not.

Программа Python

 а = 2
б = 5
с = 4
если a

Выполнить

Вывод

a верно и a верно. В результате все условие верно.

 2 меньше 5 и 4 

Пример 4: Python If с выражением, оценивающим число нуль. ноль считается ложным, а ненулевое значение (положительное или отрицательное) считается истинным.

В этом примере мы напишем оператор Python If, в котором логическое выражение оценивается как число.

Программа Python

 а = 2
если:
print(a, 'не ноль') 

Выполнить

Вывод

Поскольку значение условия оценивается как 2 , что является ненулевым числом, операторы внутри блока if выполняются.

 2 не равно нулю. 

Пример 5: Python Если с несколькими операторами в блоке

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

В этом примере мы напишем три оператора внутри блока if .

Программа Python

 а = 2
если:
print(a, 'отлично от нуля')
print('А это еще одно утверждение')
print('Еще один оператор') 

Выполнить

В этом примере внутри блока if мы написали только операторы печати. Но вы можете написать набор любых допустимых операторов Python внутри блока if.

Обратите внимание, что операторы if-block имеют одинаковый отступ.

Выход

 2 не равен нулю
А это еще одно утверждение
Еще один оператор 

Пример 6: Вложенный оператор If

Вы можете написать оператор If Python внутри другого оператора Python If. Это называется вложением.