print(sum([1, 2, 3, 4, 5])) print(sum([])) # Use a list print(sum([1, 2, 3, 4, 5])) # Use a tuple print(sum((1, 2, 3, 4, 5))) # Use a set print(sum({1, 2, 3, 4, 5})) # Use a range print(sum(range(1, 6))) print(sum(range(10))) print(sum(range(10), 10)) # Use a dictionary print(sum({1: "one", 2: "two", 3: "three"})) print(sum({1: "one", 2: "two", 3: "three"}.keys())) print(sum([x ** 2 for x in range(1, 6)])) print(sum([1, 2, 3, 4, 5], 100)) # Positional argument print(sum([1, 2, 3, 4, 5], start=100)) # Keyword argument from decimal import Decimal from fractions import Fraction # Sum floating-point numbers print(sum([10.2, 12.5, 11.8])) print(sum([10.2, 12.5, 11.8, float("inf")])) print(sum([10.2, 12.5, 11.8, float("nan")])) # Sum complex numbers print(sum([3 + 2j, 5 + 6j])) # Sum Decimal numbers print(sum([Decimal("10.2"), Decimal("12.5"), Decimal("11.8")])) # Sum Fraction numbers print(sum([Fraction(51, 5), Fraction(25, 2), Fraction(59, 5)])) from math import fsum print(sum([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1])) print(fsum([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1])) print(sum([0.1, 0.2])) print(fsum([0.1, 0.2])) print(f"{0.1:.28f}") print(f"{0.2:.28f}") print(sum([1e-16, 1, 1e16])) print(fsum([1e-16, 1, 1e16])) print(sum([1, 1, 1e100, -1e100] * 10_000)) print(fsum([1, 1, 1e100, -1e100] * 10_000)) lst = [[1, 2, 3], [4, 5], [6]] print(sum(lst, [])) # [1, 2, 3, 4, 5, 6] cumulative_sales = 0 monday = [50, 27, 42] cumulative_sales = sum(monday, start=cumulative_sales) print(cumulative_sales) tuesday = [12, 32, 15] cumulative_sales = sum(tuesday, start=cumulative_sales) print(cumulative_sales) wednesday = [20, 24, 42] cumulative_sales = sum(wednesday, start=cumulative_sales) print(cumulative_sales) def average(data_points): if (num_points := len(data_points)) == 0: raise ValueError("average requires at least one data point") return sum(data_points) / num_points print(average([2, 3, 4, 2, 3, 6, 4, 2])) x_vector = (1, 2, 3) y_vector = (4, 5, 6) print(sum(x * y for x, y in zip(x_vector, y_vector)))