Напишите программу для вывода суммы всех элементов массива размера N, где N может быть любым целым числом от 1 до 100

Напишите программу для вывода суммы всех элементов массива размера N, где N может быть любым целым числом от 1 до 100. (1 \le N \le 100)

Инструкции:

Вы должны взять входную переменную N, обозначающую количество элементов массива. Затем вам нужно ввести элементы массива в одну строку. Мы предоставили код для получения ввода для элементов массива. Вы должны написать логику для добавления элементов массива. Распечатайте сумму. Пример ввода Пример вывода 3 1 2 3 6 Объяснение примера ввода/вывода

Н = 3 Массив = 1 2 3

1 + 2 + 3 = 6

N = int(input())
nums = input()
# Get the input
numArray = map(int, input(),nums.split())

sum_integer = 0
# Write the logic to add these numbers here
for i in range(0,N):
    sum_integer = sum_integer[i]
# Print the sum
print (sum_integer)

получение ошибки

Traceback (последний последний вызов): Файл "main.py", строка 7, в numArray = карта (целое, ввод(), nums.split()) EOFError: EOF при чтении строки

что я сделал не так? вопрос от: https://www.codingal.com/competitions/codewars-2021-all-problems/problems/4/

Удалите input(), из звонка map. Это первый шаг.

Tim Roberts 20.03.2022 06:53

сделано сейчас, что я должен сделать

Hrushal 20.03.2022 06:53

это сработает?

Hrushal 20.03.2022 06:54

Тогда вам нужно sum_integer += numArray[i], То, что у вас в петле, не имеет смысла.

Tim Roberts 20.03.2022 06:54

Да, ваш вариант тоже подойдет.

Tim Roberts 20.03.2022 06:55

@TimRoberts все та же ошибка Traceback (последний последний вызов): файл «main.py», строка 12, в <module> sum_integer += numArray[i] TypeError: объект «карта» не может быть подписан

Hrushal 20.03.2022 07:00
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
6
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

mapметод принимает два аргумента: первый, один из которых является lambdaметодом для преобразования одного типа данных в другой тип данных, а второй является iterable, когда будет выполняться операция первого метода.

перед преобразованием в int введите, используя filter, чтобы удалить данные, такие как пробелы

filter(lambda data:len(data.strip(), __iterables__)

После этой операции вызов map(int, __iterables__), который преобразует данные из str в int для всех значений в __iterables__, а list(map(...)) преобразует map в list.

N = int(input())
# Get the input
nums = input()
numArray = list(map(int,filter(lambda data:len(data.strip())>0,nums.split(' '))))
#print(numArray)

sum_integer = 0
# Write the logic to add these numbers here
for i in range(len(numArray)):
    sum_integer += numArray[i]
# Print the sum
print (sum_integer)
~

Выход:

$ python test.py
3
1 2 3
6

Или что-то вроде этого:

input()

print(sum( list(map(int, filter(lambda data:len(data.strip())>0, input().split(' '))))))

Вы можете объяснить часть карты?

Hrushal 20.03.2022 07:13

Прочтите его изнутри. Сначала вызовите input, чтобы прочитать строку ввода, а затем разбейте ее на слова. Затем мы передаем это filter; цель этого состоит в том, чтобы избавиться от любых пустых строк, если они должны были ввести пробел в начале (" 1 2 3"). Это оставляет нам список строк. Затем мы передаем его в map, который будет вызывать int для каждого string и возвращает набор целых чисел, которые мы преобразуем в список и передаем в sum.

Tim Roberts 20.03.2022 22:59

Я думаю, что этот подход должен работать

arrlen = int(input());#length of the array
ele = [int(x) for x in input().split(' ')];
sumR = 0;
#This loop can be replaced by a simple sumR = sum(ele)
for i in range(arrlen):
     sumR+=ele[i];
print(sumR);

Другие вопросы по теме