Tee Jones
Tee Jones

Reputation: 3

Is their a way i can put a sum and average of array functions together to create one function?

I need the sum and average functions to be combined to make my code shorter. My teacher said I don't need to add a function for the average I can just print average by dividing sum/n?

import random

def main():

    random_numbers = [random.randrange(1,100) for _ in range (10)]
    print(random_numbers)

    numbers = random_numbers

    total = get_total(numbers)
    print("Sum:", total)

    average = get_average(numbers)
    print("Average:", average)


def get_total(value_list):
    total = 0
    for num in value_list:
        total += num
    return total

def get_average(value_list):
    return get_total(value_list)/len(value_list)


main()

This is an example of what the output should look like (I have the correct output btw):

    [58, 25, 15, 66, 26, 58, 50, 12, 75, 48]
    Sum: 433
    Average: 43.3

Upvotes: 0

Views: 80

Answers (2)

Prajwal K R
Prajwal K R

Reputation: 672

Here's the shortest code:

import random

def main():

    random_numbers = [random.randrange(1,100)
                for _ in range (10)]
    print(random_numbers)

    numbers = random_numbers

    total = sum(numbers)
    print("Sum:", total)
    print("Average:", total/len(numbers))

main()

Upvotes: 1

rb612
rb612

Reputation: 5563

You do not have to do the multiple return statements. You can print right from a function.

import random

def main():

    random_numbers = [random.randrange(1,100)
                for _ in range (10)]
    print(random_numbers)

    numbers = random_numbers

    getInformation(numbers)


def getInformation(value_list):
    total = 0
    for num in value_list:
        total += num
    print("Sum: " + total)
    print("Average: " +total/len(value_list))


main()

Upvotes: 1

Related Questions