Как вывести данные в виде списка? Выводит только последнее число / последний список. for n in range(4, 10001): s = '8'+ '4'*n while ('11' in s) or ('444' in s) or ('8888' in s): if '11' in s: s = s.replace('11', '4') if '444' in s: s = s.replace('444', '88') if '8888' in s: s = s.replace('8888', '1')
sp = [] k = 0 for j in s: k = k+int(j) sp.append(k) print(sp) вывод: [1, 5, 9, 17, 25, 33, 37]
Для вывода данных в виде списка, вам нужно объявить список за пределами цикла и добавлять в него значения внутри цикла. Вот исправленный код:
sp = [] for n in range(4, 10001): s = '8'+ '4'*n while ('11' in s) or ('444' in s) or ('8888' in s): if '11' in s: s = s.replace('11', '4') if '444' in s: s = s.replace('444', '88') if '8888' in s: s = s.replace('8888', '1') k = 0 for j in s: k = k + int(j) sp.append(k) print(sp)
Теперь при выполнении этого кода, вы увидите список, содержащий все значения, а не только последнее.
Для вывода данных в виде списка, вам нужно объявить список за пределами цикла и добавлять в него значения внутри цикла. Вот исправленный код:
sp = []for n in range(4, 10001):
s = '8'+ '4'*n
while ('11' in s) or ('444' in s) or ('8888' in s):
if '11' in s:
s = s.replace('11', '4')
if '444' in s:
s = s.replace('444', '88')
if '8888' in s:
s = s.replace('8888', '1')
k = 0
for j in s:
k = k + int(j)
sp.append(k)
print(sp)
Теперь при выполнении этого кода, вы увидите список, содержащий все значения, а не только последнее.