JavaRush /Курсы /Модуль 1: Python Core /Условный оператор

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

Модуль 1: Python Core
3 уровень , 5 лекция
Открыта

6.1 if else

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

if условие:
   команда1
else:
   команда2

Если условие истинно (правда, True), то выполнится команда1, если ложно (ложь, False) то выполнится команда2. Команды никогда не выполнятся одновременно: или одна, или вторая.

Важно! Дочерняя команда или команды обязательно(!) должны быть сдвинуты на 4 пробела относительно команд if и else. Более подробно об этом я расскажу в следующей лекции «Блок команд».

Примеры:


y = 4
if y > 5:
    print("y больше 5")
else:
    print("y не больше 5")
Условие y > 5 ложно, поэтому выполнится ветка else и программа напечатает "y не больше 5"

Еще пример:


age = int(input("Введите ваш возраст:"))
if age >=18:
    print("вы совершеннолетний")
else:
    print("иди делать уроки")
Если пользователь введет число 18 и больше, то программа напечатает «вы совершеннолетний», иначе напечатает «иди делать уроки».

6.2 if без else

Существуют еще 2 формы условного оператора – сокращенная и удлиненная.

В сокращенной форме отсутствует часть else.

if условие:
    команда

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

Пример:


age = int(input("Введите ваш возраст:"))
if age >=21:
    print("Вот ваше пиво!")
Если пользователь введет число 21 и больше, то программа напечатает «вот ваше пиво». Если число меньше 21 – программа не напечатает ничего.

6.3 if elif else

Удлиненная форма оператора if else позволяет склеить несколько операторов if else в один.

Допустим, вы хотите определить, к какой четверти координатной плоскости принадлежит точка с координатами x и y. Вот как это можно сделать с помощью оператора if и else:


x, y = 5, -8
if x > 0 and y > 0:
    print("первая четверть")
else:
    if x < 0 and y > 0:
        print("вторая четверть")
    else:
        if x < 0 and y < 0:
            print("третья четверть")
        else:
            print("четвертая четверть")
 
Если x > 0 и y > 0 то будет выведена надпись «первая четверть». Если x < 0 и y > 0 то будет выведена надпись «вторая четверть». Если x < 0 и y < 0 то будет выведена надпись «третья четверть». Если x > 0 и y < 0 то будет выведена надпись «четвертая четверть».

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


if условие1:
    команда1
elif условие2:
    команда2
elif условиеN:
    командаN
else:
    командаElse

Ключевое слово elif – это сокращение от else if. А код из примера выше теперь можно записать в виде:


x, y = 5, -8
if x > 0 and y > 0:
    print("первая четверть")
elif x < 0 and y > 0:
    print("вторая четверть")
elif x < 0 and y < 0:
    print("третья четверть")
else:
    print("четвертая четверть")


Если x > 0 и y > 0 то будет выведена надпись «первая четверть». Если x < 0 и y > 0 то будет выведена надпись «вторая четверть». Если x < 0 и y < 0 то будет выведена надпись «третья четверть». Если x > 0 и y < 0 то будет выведена надпись «четвертая четверть».
2
Задача
Модуль 1: Python Core, 3 уровень, 5 лекция
Недоступна
Негатив
Негатив
2
Задача
Модуль 1: Python Core, 3 уровень, 5 лекция
Недоступна
Оценщик
Оценщик
Комментарии (21)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Алёна Уровень 3
6 ноября 2025
От чего зависит использование int или float в вопросе, когда речь идёт о целых числах? Или int это еще и только положительные числе? Вроде такого не было, или упустила?
Елисей Новиков Уровень 1
23 ноября 2025
int - целочисленное. Это не натуральное, а именно целочисленный тип данных. floaf - вещественное число. Использование зависит от задачи которую вы хотите решить
Snoopy Уровень 64 Expert
30 октября 2025
Какой результат вы ожидаете?
Mongoose Уровень 12
11 октября 2025
Фармим темную материю )
Ear Servant Уровень 8
20 июля 2025
Решил предусмотреть ввод отрицательных чисел и т. п. так как я хороший программист, но в итоге получил по шее за то что это не требовалось хыыы
SWK Уровень 26
10 марта 2025
Вопрос итогового теста №8 "Как преобразовать строку в целое число в Python?" ошибочно трактует ответ int('строка') как неправильный.
Даниил Уровень 36
16 марта 2025
int("число") если ввести int("hello"), то выдаст ошибку а если в int("число") ввести "42", то вывод будет 42
Peter Уровень 12
29 апреля 2025
вопрос на внимательность, а не дотошность. Хотя "42" - это тоже строка и можно поспорить, но тут только 1 вариант ответа, так что выбор очевиден.
SWK Уровень 26
29 апреля 2025
От иманна. "42" - строка. И "число", что характерно, - тоже строка.
vladrrom Уровень 8
5 марта 2025
Можно для задачи "Оценщик" убрать условие с использование elif и решить проще почти в 1 строку:

print("Отлично" if value >= 90 else "Хорошо" if value >= 75 else "Удовлетворительно" if value >= 50 else "Неудовлетворительно")
Елена Уровень 21
17 марта 2025
В каждой лекции говорят про удобочитаемость, чтобы код был понятен и новичку. А все только и пытаются сократить строки кода.
Peter Уровень 12
29 апреля 2025
это не проще - это govno-код который невозможно читать.
Дмитрий/MrJonson Уровень 72
19 января 2025
print("n меньше нуля") if int(input("Введите число: ")) < 0 else print("n больше нуля")
Dmitry Ryabov Уровень 23
18 января 2025
В задаче "Негатив" не указан формат вывода программы, из-за этого не получилось выполнить задачу с первой попытки.
Simona Hub Уровень 11
23 декабря 2024
/* Комментарий удален */
Dmitry Ryabov Уровень 23
18 января 2025
Зачем такие сложности = )
Марина Уровень 14
16 декабря 2024
Как-то неудобно писать в PyCharm. Или это только у меня ставлю курсор на конец слова если нужно что-то изменить или дописать, а оно печатает в середине слова? а чтобы попасть на конец слова надо на два-три символа дальше ставить курсор...