@TimofeyShapovalov

Мой код слишком громоздкий?

Вот задача:

Допустим, что сосиски упакованы в пакеты по
10 штук, а булочки - в пакеты по 8 штук. Напишите программу, которая вычисляет
количество упаковок с сосисками и количество упаковок с булочками, необходимых для
пикника с минимальными остатками. Программа должна запросить у пользователя количество участников пикника и количество хот-догов, которые будут предложены каждому
участнику. Программа должна показать приведенные ниже подробности:
• минимально необходимое количество упаковок с сосисками;
• минимально необходимое количество упаковок с булочками;
• количество оставшихся сосисок;
• количество оставшихся булочек.

Вот мой код, или мне кажется или он слишком громоздкий?

number_of_packages_with_buns = int(input("Введите количество булочек которые будут предложены участникам пикника: "))
number_of_packages_with_sausages = int(input("Введите количество сосисок которые будут предложены участникам пикника: "))
number_of_picnic_participants = int(input("Введите число участников пикника: "))
pinic = number_of_packages_with_buns * number_of_picnic_participants
pinic1 = number_of_packages_with_sausages * number_of_picnic_participants
pinic3 = pinic / 8
pinic4 = pinic1 / 10
pinic5 = pinic % 8
pinic6 = pinic1 % 10
print(f"Минимальное необходимое количество упаковок с сосисками: {pinic4:.0f}\nМинимальное необходимое количество упаковок с булочками: {pinic3:.0f}\nКоличество оставшихся сосисок {pinic6}\nКоличество оставшихся булочек: {pinic5}")


Может его можно как-то улучшить, или так оставить?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@kalapanga
Задача решена неверно. Тут нужно не улучшать, а исправлять! У Вас что, люди будут есть отдельно булки и отдельно сосиски? Нет! Так зачем Вы просите ввести количество булок и отдельно количество сосисок? В условии же ясно написано - запросить количество участников и количество хотдогов, которые будут предложены каждому. Соответственно и дальнейший расчёт должен отталкиваться именно от этих значений.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
1. pinic3..pinic6 можно не вычислять а вставить прямо в printf выражение.
2. Обычно во всех пользовательских вводах делают больше проверок. Например проверяют что введено
неотрицательное число сосикок. Казалось-бы пустяк. Но если подумать что это торговый автомат и дело
касается денег - то такие баги вовсе не пустяк.
Ответ написан
Ваш ответ на вопрос

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

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