Пользователь вводит данные, как преобразовать эти данные в массив? (Данные типа int)

Подскажите, как преобразовать данные типа int в массив. Пользователь вводит данные далее с помощью цикла while нужно перебрать все элементы.


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

Автор решения: ПИТОНИСТ версия-3-8
a=0
i=list(input())
sp=[]
while a<len(i): 
    sp.append(int(i[a]))
    a+=1
print(sp)

Или так, через for, но короче:

a=[]
for i in list(input()): a.append(int(i))
print(a)

Пример:

Ввод:

345

Вывод:

[3, 4, 5]
→ Ссылка
Автор решения: Artyom Zaborschicov

Предпологаю, что задача больше про идею алгоритма, нежели про простое решение.

Идея алгоритма в том, что бы получать остаток от деления числа на основание системы счисления, пока число не станет нулевым. По сути мы используем принцип образования систем счисления в обратную сторону. Подробнее про позиционные системы счисления можете почитать тут. Если не ясно, можно посмотреть материалы полегче, благо их в интернете полно. Перейдём к решению.

В данном случае допустим что n свалилось с неба и мы работаем с ним (она объявлена в коде ранее)

base = 10 #основание системы счисления, на случай если мы будем использовать не десятичную
remainders = []

while n != 0:
    remainders.extend(n % 10) #получаем остаток
    n //= 10 # целочисленно делим число, что бы перейти к следующему разряду

Что бы получить ваш список в обратном порядке вы можете применить метод reverse, который перевернёт ваш список. Как то так: remainders.reverse() (результат не нужно помещать в переменную, метод изменит сам объект, но ничего не вернёт).

Для информации добавлю банальное решение без while:

remainders = list(map(int, str(n)))

Тут мы преобразуем число в строку, а далее каждый символ по отдельности в число. Далее мы превращаем интератор в список и можем с ним удобно работать. Однако, подозреваю, разобраться с работой таких инструментов вам предстоит в будущем. Удачи и усердия в изучение программирования!

→ Ссылка