Как вводить ввод в массив + 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