Откройте контекст
Выберите папку проекта и обозначьте нужные файлы или поведение.
Распакуйте пары байт–число повторов только после проверки общего предела вывода. Отклоните нулевые и отрицательные счётчики, значения вне диапазона байта и превышение лимита, не меняя исходный список.
Выберите папку проекта и обозначьте нужные файлы или поведение.
Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.
Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
def expand_runs(runs, limit):
if type(limit) is not int or limit < 0:
raise ValueError("limit.invalid")
total = 0
for value, count in runs:
if type(value) is not int or not 0 <= value <= 255:
raise ValueError("byte.invalid")
if type(count) is not int or count <= 0:
raise ValueError("count.invalid")
total += count
if total > limit:
raise ValueError("output.limit")
return bytes(value for value, count in runs for _ in range(count))Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.