• 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 2. Условия

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

Задача«Индекс массы тела»

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

Формула для расчёта ИМТ: ИМТ = вес (кг) / (рост (м) * рост (м))

Напишите программу, которая:

  1. Запрашивает у пользователя его рост в метрах (например, 1.75).
  2. Запрашивает у пользователя его вес в килограммах (например, 68.5).
  3. Вычисляет ИМТ по указанной формуле.
  4. Выводит одно из трёх сообщений в зависимости от полученного значения:
    • "Недостаточная масса тела", если ИМТ меньше 18.5.
    • "Нормальный вес", если ИМТ находится в диапазоне от 18.5 до 24.9 включительно.
    • "Избыточная масса тела", если ИМТ равен 25 или больше.

Формат ввода

Первая строка: Рост пользователя (вещественное число, например, 1.75).
Вторая строка: Вес пользователя (вещественное число, например, 65).

Формат Вывода

Одна строка с сообщением, характеризующим массу тела (строка).

Пример

Ввод

1.75
68

Вывод

Нормальный вес

Подсказка

Условия в Питоне

Условия в Python позволяют программе принимать решения на основе проверки истинности логических выражений. Представьте, что ваша программа дошла до развилки на дороге: в зависимости от того, куда нужно идти, она выберет один из путей. Это и есть один из фундаментальных элементов программирования, который позволяет выполнять разные части кода в зависимости от различных обстоятельств. В Python для создания таких "развилок" используются операторы if, elif и else.

Синтаксис

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

ВАЖНО! После самого условия (if условие: или elif условие:) и после else всегда ставится двоеточие (:).

if условие:
    # блок кода, который выполнится, если условие истинно
else:
    # другой блок кода, который выполнится, если условие ложно

Отступы в Python — это не просто красота, это часть синтаксиса! В отличие от многих других языков, где для группировки кода используются фигурные скобки {}, в Python для этого служат отступы (обычно 4 пробела). Именно отступ показывает, какие строки кода относятся к if, а какие к else. Все строки внутри одного блока должны иметь одинаковый отступ.

Полезный совет: Самая частая ошибка новичков — смешивание пробелов и символов табуляции для создания отступов. Это может привести к ошибке IndentationError. Настройте ваш редактор кода так, чтобы он автоматически заменял табуляцию на 4 пробела.

x = 10
if x > 5:
    print("x больше 5")  # Этот код находится внутри блока if, он выполнится.
    y = x - 5          # И эта строка тоже внутри блока if.
    # Вложенное условие: проверка внутри проверки
    if y < 3:
        # У этой строки отступ еще больше, она принадлежит вложенному if.
        print("y меньше 3")  
else:
    # Этот код выполнится, только если условие 'x > 5' ложно.
    print("x не больше 5") 

Основные операторы условий

  1. if: Выполняет блок кода, если его условие истинно (True). Это "главная" проверка.
  2. elif: (сокращение от "else if") Проверяет свое условие, только если все предыдущие проверки if и elif оказались ложными.
  3. else: Выполняет свой блок кода, если все без исключения предыдущие условия (if и все elif) оказались ложными. Блок else является необязательным.

Давайте рассмотрим на примерах.

x = 10
if x > 5: # Условие 10 > 5 истинно (True).
    print("x больше 5") # Этот код выполнится.

Теперь связка с else. Выполняется только один из блоков: либо if, либо else.

x = 3
if x > 5: # Условие 3 > 5 ложно (False).
    print("x больше 5") # Этот блок будет пропущен.
else:
    print("x не больше 5") # Программа перейдет сюда и выполнит этот код.

Оператор elif позволяет проверять несколько условий подряд. Блоков elif может быть сколько угодно. Как только один из них окажется истинным, вся конструкция завершится.

x = 5
if x > 5: # Условие 5 > 5 ложно (False).
    print("x больше 5")
elif x == 5: # Условие 5 == 5 истинно (True).
    print("x равно 5") # Этот блок выполнится, и проверка закончится.
else: # Сюда программа даже не заглянет, так как условие в elif уже выполнилось.
    print("x меньше 5")

Полезный совет: Порядок elif имеет значение! Python проверяет их сверху вниз. Размещайте более конкретные и строгие проверки выше, а более общие — ниже.

Операторы сравнения

Операторы сравнения используются внутри условий для сравнения двух значений. Результатом их работы всегда является логическое значение: True (истина) или False (ложь).

  • == Равно
  • != Не равно
  • > Больше
  • < Меньше
  • >= Больше или равно
  • <= Меньше или равно

Полезный совет: Не путайте оператор сравнения == с оператором присваивания =! Одна из самых распространенных ошибок. x = 5 — это "положить значение 5 в переменную x". x == 5 — это "спросить, равно ли значение в x пяти?".

x = 10
b = 17
c = 0
print(x > 9)    # True
print(b <= 17)  # True
print(c != 1)   # True
print(x < 110)  # True
print(b == 17)  # True
print(c >= -10) # True

Проверка на принадлежность диапазону (цепочки сравнений)

Если вам нужно проверить, попадает ли число в определенный диапазон, Python позволяет делать это очень изящно с помощью "цепочек сравнений".

a = 17
# Проверяем, что 'a' находится в диапазоне от 10 до 100 включительно.
print(10 <= a <= 100) # True

Это более читаемая и "питоничная" запись, чем a >= 10 and a <= 100.

# Можно строить и более сложные цепочки.
# Эта запись проверяет, что 200 > 17 И 17 < 100.
print(200 > a < 100) # True

Логические операторы: and, or, not

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

  • and (логическое "И"): Возвращает True, только если оба условия истинны.
  • or (логическое "ИЛИ"): Возвращает True, если хотя бы одно из условий истинно.
  • not (логическое "НЕ"): Инвертирует логическое значение (меняет True на False и наоборот).
age = 25
has_license = True

# Чтобы водить машину, нужно быть старше 18 И иметь права.
if age >= 18 and has_license == True:
    print("Можно садиться за руль")

temperature = -5
is_weekend = True

# Пойдем гулять, если на улице тепло ИЛИ сегодня выходной.
if temperature > 0 or is_weekend == True:
    print("Отличный день для прогулки!")
main.py
Тест 1
Тест 2
Тест 3
Тест 4
Тест 5
Тест 6
Тест 7
Тест 8
Тест 9
Тест 10
Решение разработчика
# Запрашиваем у пользователя рост и преобразуем его в вещественное число (float)
height = float(input())

# Запрашиваем у пользователя вес и преобразуем его в вещественное число (float)
weight = float(input())

# Вычисляем индекс массы тела по формуле
# Используем  2 для возведения роста в квадрат
bmi = weight / (height ** 2)

# Проверяем значение ИМТ с помощью условных операторов
if bmi < 18.5:
    # Если ИМТ меньше 18.5, выводим сообщение о недостаточной массе
    print("Недостаточная масса тела")
elif bmi <= 24.9:
    # Если предыдущее условие ложно, но ИМТ меньше или равен 24.9,
    # выводим сообщение о нормальном весе. Этот блок сработает для ИМТ от 18.5 до 24.9.
    print("Нормальный вес")
else:
    # Если все предыдущие условия ложны (т.е. ИМТ больше 24.9),
    # выводим сообщение об избыточной массе
    print("Избыточная масса тела")

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...

Помощник ИИ

Привет! Я твой помощник по программированию. Задавай любые вопросы по Python, я могу рассказать о функциях, методах, обьяснить то, что тебе не понятно, а так же о текущей задаче!