Заполните список пользовательским вводом через цикл for - PullRequest
0 голосов
/ 23 февраля 2020

Я знаю некоторые основы c C ++, и я понимаю, как заполнить массив пользовательским вводом через for для l oop, но я хотел бы знать, как выполнить sh эту задачу в Python 3. Я оглядывался тут и там, но не мог понять, как другие отвечают на этот вопрос.

int size = 0;
cout << "Enter size: " << endl;
cin >> size;
array[size] = {0};
for (int i = 0; i < size; i++)
    cin >> array[i];

Надеюсь, кто-нибудь объяснит мне это простым способом. Как вы можете сказать, я только начал C ++ примерно через 5-6 месяцев go и Python3 примерно в середине этого месяца.

Спасибо!

Ответы [ 2 ]

1 голос
/ 23 февраля 2020

В C++ сначала нужно определить размер массива, в списках python вы этого не сделаете, они будут соответственно расти, пока вы добавляете в них элементы. Например, чтобы кодировать это в python, я бы написал эквивалентный код, подобный этому (я добавил оператор print, чтобы продемонстрировать a_list рост):

size = int(input("Enter size: "))  # for input 3
a_list = []
for i in range(size):
    a_list.append(input())  # for input 1, 2, 3

print('python list:', a_list)

>>> python list: ['1', '2', '3']
0 голосов
/ 23 февраля 2020

Прежде всего я хочу сказать одну вещь о написанной вами части C ++.

Эта часть официально не поддерживается C ++:

cin >> size;
array[size] = {0};

Массивы переменной длины (VLA) допустимы в C99 и могут работать с некоторыми компиляторами C ++ как расширение C, но это не является официальной частью языка. В C ++ их не следует использовать, поскольку это может привести к непереносимому коду. Пожалуйста, используйте что-то вроде std::vector.

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

На топи c:

size = int(input('Size:'))
my_array = []

for i in range(size):
    val = int(input())
    my_array.append(val)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...