Python

Как сложить числа в списке Python: sum, цикл и проверка типов

Чтобы сложить числа в списке Python, обычно используют встроенную функцию sum(). Она принимает последовательность чисел и возвращает их сумму. Это самый короткий и читаемый способ для обычных списков

numbers = [10, 20, 30]
total = sum(numbers)

print(total)

Результат

60

Короткий ответ

numbers = [5, 8, 12, 4]
print(sum(numbers))

Если нужен результат в переменной

numbers = [5, 8, 12, 4]
total = sum(numbers)

print("Сумма:", total)

Такой вариант подходит для целых чисел и дробных чисел

prices = [10.5, 20.0, 7.25]
print(sum(prices))

Как сложить элементы через цикл

Через цикл пишут так

numbers = [10, 20, 30]
total = 0

for number in numbers:
    total += number

print(total)

Этот способ полезен для обучения, потому что показывает, как сумма накапливается шаг за шагом. Но в обычном коде для простой суммы лучше sum(numbers)

Что делать, если числа пришли строками

Если список получился из строк, sum() не сможет сложить элементы как числа

numbers = ["10", "20", "30"]
print(sum(numbers))

Будет ошибка типов. Нужно сначала преобразовать строки в числа

numbers = ["10", "20", "30"]
real_numbers = [int(number) for number in numbers]

print(sum(real_numbers))

Или сразу через map()

numbers = ["10", "20", "30"]
print(sum(map(int, numbers)))

Если числа дробные, используйте float

prices = ["10.5", "20.0", "7.25"]
print(sum(map(float, prices)))

Как сложить числа, введенные через пробел

Пользователь может ввести строку 10 20 30. Ее нужно разбить на части, превратить части в числа и сложить

text = input("Введите числа через пробел: ")
numbers = list(map(int, text.split()))

total = sum(numbers)
print("Сумма:", total)

Если пользователь введет 10 20 30, программа выведет 60

Как сложить только положительные числа

Иногда нужно складывать не все элементы, а только те, что подходят по условию

numbers = [10, -5, 20, -3, 7]
positive_sum = sum(number for number in numbers if number > 0)

print(positive_sum)

Результат

37

Здесь внутри sum() используется генератор: Python перебирает числа и берет только положительные

Как сложить числа в списке списков

Если есть таблица, можно сложить все числа вложенными циклами или генератором

table = [
    [1, 2, 3],
    [4, 5, 6],
]

total = sum(number for row in table for number in row)

print(total)

Результат

21

Если нужно посчитать сумму по каждой строке

table = [
    [1, 2, 3],
    [4, 5, 6],
]

for row in table:
    print(sum(row))

Как задать начальное значение sum

У sum() есть второй аргумент — стартовое значение

numbers = [10, 20, 30]
total = sum(numbers, 100)

print(total)

Результат

160

Python сначала берет 100, а потом добавляет элементы списка. В обычных задачах стартовое значение чаще не нужно, но полезно знать, что оно есть

Почему sum не стоит использовать для склейки строк

sum() предназначен для чисел. Для строк используйте join()

words = ["Python", "это", "удобно"]
text = " ".join(words)

print(text)

Если попытаться складывать строки через sum(), Python выдаст ошибку и предложит использовать join()

Мини-практика

Создайте файл sum_lesson.py

marks = [5, 4, 5, 3, 4]

total = sum(marks)
average = total / len(marks)

print("Сумма оценок:", total)
print("Средняя оценка:", average)

Потом замените список оценок на ввод пользователя

text = input("Введите оценки через пробел: ")
marks = list(map(int, text.split()))

print("Сумма:", sum(marks))
print("Средняя:", sum(marks) / len(marks))

Так вы закрепите сразу три вещи: split(), map(int, ...) и sum()

Частые ошибки

Первая ошибка — передать в sum() список строк. Если данные пришли из input(), они почти всегда строки, и их нужно преобразовать

Вторая ошибка — делить на len(numbers), не проверив, что список не пустой. Если список пустой, будет деление на ноль

numbers = []

if numbers:
    print(sum(numbers) / len(numbers))
else:
    print("Список пустой")

Третья ошибка — использовать sum() для строк. Для строк нужен join()

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x