Как вводить ввод в массив + PYTHON?

Я новичок в Python и хочу читать ввод с клавиатуры в массив. Документ Python не очень хорошо описывает массивы. Также я думаю, что у меня есть некоторые ошибки с циклом for в Python.

Я даю фрагмент кода C, который я хочу в python:

Код C:

int i;

printf("Enter how many elements you want: ");
scanf("%d", &n);

printf("Enter the numbers in the array: ");
for (i = 0; i < n; i++)
    scanf("%d", &arr[i]);

Ответ 1

raw_input является вашим помощником. Из документации -

Если аргумент приглашения присутствует, он записывается на стандартный вывод без конечной новой строки. Затем функция считывает строку с ввода, преобразует его в строку (зачищая конечную новую строку) и возвращает что. Когда EOF считывается, EOFError поднимается.

Итак, ваш код будет в основном выглядеть так.

num_array = list()
num = raw_input("Enter how many elements you want:")
print 'Enter numbers in array: '
for i in range(int(num)):
    n = raw_input("num :")
    num_array.append(int(n))
print 'ARRAY: ',num_array

P.S: Я набрал всю эту свободную руку. Синтаксис может быть неправильным, но методология верна. Также следует отметить, что raw_input не проверяет тип, поэтому вам нужно быть осторожным...

Ответ 2

Если количество элементов в массиве не задано, вы также можете использовать понимание списка, например:

str_arr = raw_input().split(' ') //will take in a string of numbers separated by a space
arr = [int(num) for num in str_arr]

Ответ 3

Вы хотите это - введите N, а затем взять N количество элементов. Я рассматриваю ваш случай ввода так же, как это

5
2 3 6 6 5

иметь это таким образом в Python 3.x (для Python 2.x используйте raw_input() вместо, если input())

Python 3

n = int(input())
arr = input()   # takes the whole line of n numbers
l = list(map(int,arr.split(' '))) # split those numbers with space( becomes ['2','3','6','6','5']) and then map every element into int (becomes [2,3,6,6,5])

Python 2

n = int(raw_input())
arr = raw_input()   # takes the whole line of n numbers
l = list(map(int,arr.split(' '))) # split those numbers with space( becomes ['2','3','6','6','5']) and then map every element into int (becomes [2,3,6,6,5])

Ответ 4

data = []
n = int(raw_input('Enter how many elements you want: '))
for i in range(0, n):
    x = raw_input('Enter the numbers into the array: ')
    data.append(x)
print(data)

Теперь это не делает никакой проверки ошибок и сохраняет данные в виде строки.

Ответ 5

arr = []
elem = int(raw_input("insert how many elements you want:"))
for i in range(0, elem):
    arr.append(int(raw_input("Enter next no :")))
print arr