Не могу решить задачу с циклам while и функцией def
Не могу понять как продолжить цикл, помогите пожалуйста, задача в том что бы подсчитать количество недель необходимых для переработки 'n' банок
def calculator(cans_per_week):
total_cans=500
week_need=total_cans // cans_per_week
return week_need
initial_number_cans=0 #начальное количество переработанных банок в неделю
total_cans=500 #всего имееться банок
week_need=0 # счётчик недель
while initial_number_cans<=total_cans: #цикл будет выполняться до тех пор пока (0 начальное количество переработанных банок)<=(500 общему количеству имеющихся банок)
week_need+=calculator(10) #нужно недель для переработки + фукнция высчитывания недель
initial_number_cans
print(f'Неделя {week_need} {initial_number_cans}')
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
- Зачем вам вообще нужен цикл, если вы сразу вычисляете нужное число недель одной арифметической операцией?
- А недостаточно произведено банок может оказаться только потому, что вы округляете дробное число недель вниз, а нужно их округлять вверх. Хотя в случае, когда деление получается нацело, это вообще не важно.
- Переменная с названием, включающим слово
initial
, не должна изменяться в программе просто по смыслу. Это первоначальное значение, его не нужно менять, чтобы не запутать тех, кто будет читать ваш код. Ну, собственно, как я выше написал, вам и не нужно ничего менять - цикл же не нужен. И эта переменная тоже не нужна (если она равна 0 и её не нужно никак учитывать). total_cans
нужно передавать в функцию снаружи, а не задавать внутри.
В итоге весь ваш код вне функции calculator
должен по идее свестись к печати результата вызова функции.