Как запросить ввод чисел?

Мне необходимо решить задачу о нахождении НОД для n чисел. Решал я таким образом, вот код:

def find_gcd(x, y): 
    while(y): 
        x, y = y, x % y 
  
    return x       
      
l = [2, 4, 6, 8] 
num1=l[0] 
num2=l[1] 
gcd=find_gcd(num1,num2) 
  
for i in range(2,len(l)): 
    gcd=find_gcd(gcd,l[i]) 
      
print(gcd)

В данной программе вычисляется НОД чисел, введенные в списке l. Выводит 2 все правильно. Теперь мне необходимо сделать так, чтобы числа вводились в самое программе, а не в коде. То есть чтобы появлялось поле "Введите числа ", я ввожу и мне выдается результат. Пробовал сделать через

print('введите числа')
l = [int(elem) for elem in input().split()]
print(l)

Но почему-то выдается ошибка. Не подскажите в чем дело и как ее исправить? Заранее спасибо!


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

Автор решения: Spartak

Воспользуйтесь методом input:

from math import gcd
from functools import reduce

inputnumbers = input("Введите числа через запятую без пробелов: ")
numbarr = inputnumbers.split(",") #разобьем по запятой, получим массив
count = 0
while count < len(numbarr): # приобразуем все строки в массиве в числа
    numbarr[count] = int(numbarr[count])
    count += 1
print(reduce(gcd, numbarr))
→ Ссылка
Автор решения: user397361

Числа в строке:

from math import gcd
from functools import reduce

print(reduce(gcd, map(int, input().split())))

Числа в столбик до первой пустой:

from math import gcd
from functools import reduce
    
print(reduce(gcd, map(int, iter(input, ''))))
→ Ссылка
Автор решения: MBo

Ввод списка чисел из input:

l = list(map(int, input().split()))
→ Ссылка