Не могу решить задачу с циклам 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
  1. Зачем вам вообще нужен цикл, если вы сразу вычисляете нужное число недель одной арифметической операцией?
  2. А недостаточно произведено банок может оказаться только потому, что вы округляете дробное число недель вниз, а нужно их округлять вверх. Хотя в случае, когда деление получается нацело, это вообще не важно.
  3. Переменная с названием, включающим слово initial, не должна изменяться в программе просто по смыслу. Это первоначальное значение, его не нужно менять, чтобы не запутать тех, кто будет читать ваш код. Ну, собственно, как я выше написал, вам и не нужно ничего менять - цикл же не нужен. И эта переменная тоже не нужна (если она равна 0 и её не нужно никак учитывать).
  4. total_cans нужно передавать в функцию снаружи, а не задавать внутри.

В итоге весь ваш код вне функции calculator должен по идее свестись к печати результата вызова функции.

→ Ссылка