Предположим, я хочу создать программу, которая принимает вводимые пользователем данные в одну строку (они должны быть в одной строке, они не могут быть в нескольких строках), затем суммируют их и печатают. В терминале это будет выглядеть примерно так:
Я знаю, что построить на Python чрезвычайно просто (одна строка):
Но этот метод сохраняет каждое число во входных данных, поскольку он преобразует введенные пользователем данные в список для его сохранения. Таким образом потребляется много памяти. Что делать, если пользователь хочет ввести 30 миллионов чисел в одну строку? ОС просто закроет мою программу, поскольку она попытается одновременно сохранить 30 миллионов чисел.
В C я бы решил проблему, используя только четыре переменные.
Код: Выделить всё
#include
int main()
{
int n,a,sum;
sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &a);
sum += a;
}
printf("%d\n", sum);
}
Эта программа не сохраняет все введенные пользователем данные одновременно. Он отбрасывает предыдущий ввод пользователя и сохраняет только текущий ввод. Тем не менее, он может выполнить ту же задачу, используя всего 32 байта памяти.
Могу ли я сделать то же самое в Python? Я перерыл весь Интернет и не нашел способа обрабатывать по одному числу за раз, когда пользователь вводит данные всего в одну строку.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... ing-a-list