Не работает append

Столкнулся с проблемой: у меня есть пустой список, и я хочу добавить туда полученные значения, но ничего не происходит

s = 18 * 7**108 - 6 * 49**76 + 343**35 - 50
a = []
while s > 0:
    a.append(s % 49)
    s = s // 49
print(a)

Ответы (1 шт):

Автор решения: Nowhere Man

Если "ничего не происходит" и список остаётся пустым, достаточно было вывести для отладки значение s перед циклом для самопроверки:

s = 18 * 7**108 - 6 * 49**76 + 343**35 - 50
print("Debug: s =", s)
a = []
while s > 0:
    a.append(s % 49)
    s = s // 49
print(a)

Вывод:

Debug: s = -1710225322544356890637162056997157202150754333661885192406235127070375267726125394233938882595060293508573840518708288323982944031
[]

или же воспользоваться else после цикла для обнаружения подобной ситуации:

# ...
while s > 0:
    a.append(s % 49)
    s = s // 49
    if s == 0:
        break
else:
    print("Invalid s =", s)
Invalid s = -1710225322544356890637162056997157202150754333661885192406235127070375267726125394233938882595060293508573840518708288323982944031
[]

Но в целом достаточно было бы определить знак исходного выражения, приведя его члены к единому основанию 7:
6 * (3 * 7108 - 72 * 76) + 73 * 35 - 50 = 6 * (3 * 7108 - 7152) + 7105 - 50 ≪ 0

→ Ссылка