Alger logo
𝔸𝕝𝕘𝕖𝕣
About

Average Mean

from __future__ import annotations


def mean(nums: list) -> float:
    """
    Find mean of a list of numbers.
    Wiki: https://en.wikipedia.org/wiki/Mean

    >>> mean([3, 6, 9, 12, 15, 18, 21])
    12.0
    >>> mean([5, 10, 15, 20, 25, 30, 35])
    20.0
    >>> mean([1, 2, 3, 4, 5, 6, 7, 8])
    4.5
    >>> mean([])
    Traceback (most recent call last):
        ...
    ValueError: List is empty
    """
    if not nums:
        raise ValueError("List is empty")
    return sum(nums) / len(nums)


if __name__ == "__main__":
    import doctest

    doctest.testmod()
About this Algorithm

Calculate the average of a list of numbers using mean.

Applications

Calculating the mean of a list of numbers is one of the most common ways to determine the average of those numbers.

Calculating a mean would be useful in these situations:

  • Determining the average score for all players of a video game level.
  • Finding the average grade for tests that a student took this semester.
  • Determining the average size of all files in a directory/folder.

Steps

  1. Input a list of numbers.
  2. Calculate the sum of all numbers in the list.
  3. Count the numbers in the list.
  4. Divide the sum by the total count of numbers in the list.
  5. Return mean.

Example

Given the list [2, 4, 6, 8, 20, 50, 70], let's calculate the average.

Step 1

Send [2, 4, 6, 8, 20, 50, 70] as input for a method/function.

Step 2

Add all the numbers together.

2 + 4 + 6 + 8 + 20 + 50 + 70 = 160, so sum = 160.

Step 3

Count the numbers in the list.

The list has seven numbers, so count = 7.

Step 4

Divide the sum of all the numbers by the count of the numbers.

sum = 160
count = 7

If we ignore significant digits: sum / count = 22.857142

If we properly consider significant digits: sum / count = 23

Step 5

Return the value of 22.857142 or 23.

Implementation

Video URL

Others

Algerlogo

© Alger 2022

About us

We are a group of programmers helping each other build new things, whether it be writing complex encryption programs, or simple ciphers. Our goal is to work together to document and model beautiful, helpful and interesting algorithms using code. We are an open-source community - anyone can contribute. We check each other's work, communicate and collaborate to solve problems. We strive to be welcoming, respectful, yet make sure that our code follows the latest programming guidelines.