@Valerka_136

Почему не работает код на python?

Сделал калькулятор калорий, но почему то в независимости от введеных значений(в переменных the_aim и the_sex) выводит один и тот же результат по калориям. Пример если кто не понял
638cba89b4a83908742583.png638cba8f12e71243725640.png
the_height = float(input("Введите рост в сантиметрах: "))
the_weight = float(input("Введите вес в килограммах: "))
the_fitnes = float(input("Введите количество занятий фитнесом в неделю: "))
the_age = float(input("Введите ваш возраст: "))
the_aim = input(
    "Введите вашу цель(увеличение мышечной массы, похудение, поддержание веса): ")
the_sex = input("Введите ваш пол: ")

if the_fitnes == 0:
    the_fitnes = 1.2
elif the_fitnes == 1 or 2 or 3:
    the_fitnes = 1.375
elif the_fitnes == 4 or 5 or 6:
    the_fitnes = 1.55
elif the_fitnes == 7:
    the_fitnes = 1.7
elif the_fitnes == 8:
    the_fitnes = 1.9
else:
    print("Введено неверное значение занятий фитнесом в неделю")


the_man_kal = int((67 + 14 * the_weight + 5 *
                  the_height - 7 * the_age) * the_fitnes)

the_woman_kal = int((655 + 10 * the_weight + 2 *
                    the_height - 5 * the_age) * the_fitnes)

the_height = the_height/100
the_BMI = the_weight / the_height**2

# Code
# Определение занятием фитнеса

# Определение цели

if the_aim.lower() == "похудение":
    the_man_kal = the_man_kal - 500
    the_woman_kal = the_woman_kal - 500
elif the_aim == "Увеличение мышечной массы":
    the_man_kal = the_man_kal + 1300
    the_woman_kal = the_woman_kal + 1300
elif the_aim == "Поддержание веса":
    the_man_kal = the_man_kal
    the_woman_kal = the_woman_kal


# Определение пола

if the_sex.lower() == "Мужской":
    print("Количество калорий для", the_aim, ": ", the_man_kal, "калл")
elif the_sex == "Женский":
    print("Количество калорий для", the_aim,
          ": ", the_woman_kal, "калл")


print("Ваш индекс массы тела равен:", the_BMI)

if the_BMI > 0:
    if the_BMI <= 16:
        print("У вас сильный недостаток веса.")
    if the_BMI <= 18.5:
        print("У вас недостаток веса.")
    elif the_BMI <= 24.9:
        print("Вы здоровы!.")
    elif the_BMI <= 29.9:
        print("У вас избыточный вес.")
    else:
        print("У вас серьезный избыточный вес.")
else:
    print("Введены некорректные данные")
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
Maksim_64
@Maksim_64
Data Analyst
Исправь в соответствующих местах в своем коде на следующее:
the_sex.lower() == 'мужской'
the_sex.lower() == 'женский'
the_aim.lower() =='похудение'
the_aim.lower() == 'увеличение мышечной массы'
the_aim.lower() == 'поддержание веса'
the_fitnes in [1,2,3]
the_fitnes in [4,5,6]

Дальше надо смотреть может что то еще всплывет при такой общей конструкции кода проблем избежать трудно.
Ответ написан
Комментировать
ivankarmanow
@ivankarmanow
Начинающий программист
Перед публикацией вопроса советовал бы повнимательнее проверять свой код.
Проблема банальная - условия с использованием lower() не везде написаны корректно
Конкретно вот это:
if the_aim.lower() == "похудение":
    the_man_kal = the_man_kal - 500
    the_woman_kal = the_woman_kal - 500
elif the_aim == "Увеличение мышечной массы":
    the_man_kal = the_man_kal + 1300
    the_woman_kal = the_woman_kal + 1300
elif the_aim == "Поддержание веса":
    the_man_kal = the_man_kal
    the_woman_kal = the_woman_kal

Следует заменить на это:
if the_aim.lower() == "похудение":
    the_man_kal -= 500
    the_woman_kal -= 500
elif the_aim.lower() == "увеличение мышечной массы":
    the_man_kal += 1300
    the_woman_kal += 1300

А вот это:
if the_sex.lower() == "Мужской":
    print("Количество калорий для", the_aim, ": ", the_man_kal, "калл")
elif the_sex == "Женский":
    print("Количество калорий для", the_aim,
          ": ", the_woman_kal, "калл")

На это:
if the_sex.lower() == "мужской":
    print("Количество калорий для", the_aim, ": ", the_man_kal, "калл")
elif the_sex.lower() == "женский":
    print("Количество калорий для", the_aim, ": ", the_woman_kal, "калл")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы