samedi 19 octobre 2019

Calculate odd and even averages of whole numbers

I need to write a program to calculate the even and odd average of whole numbers input by the user. The user types “done” to complete. The output will show the average of the odd numbers, and the average of the even numbers.

I have my while loop program that does the sum of the numbers, and I'm trying to add the additional requirements of an odd sum and even sum to. Here is that code:

total = 0
done = False
while(not done):
    user_in = input("Give me an integer or type 'done' to be done.")
    if( user_in.lower() == "done"):
        done = True
    else:
        # assume that they've typed in an integer
        total += int(user_in)
print (total)

Below is my modified code to sort odd and even numbers, then average each group.

total = 0
evenSums = 0
oddSums = 0
done = False
while(not done):
    user_in = input("Give me an integer or type 'done' to be done.")
    if( user_in.lower() == "done"):
        done = True
    else:
        # assuming they've typed in an integer
        total += int(user_in)
        if user_in % 2 == 0:
            evenSums += user_in
            evenAverage = evenSums / user_in
        else:
            oddSums += user_in
            oddAverage = oddSums / user_in
print(total)
print("Even Average: " + str(evenAverage))
print("Odd Average: " + str(oddAverage))

Expected:

Enter number: 11
Enter number: 24
Enter number: 18
Enter number: 29
Enter number: 7
Enter number: done
Even Average: 21
Odd Average: 15.666666666666666

Actual:

Give me an integer or type 'done' to be done.6
Traceback (most recent call last):
  File "C:/Users/guita/Documents/School/CSCI100/CSCI100_Lab4_P/CSCI100_Lab4_P/problem7.py", line 14, in <module>
    if user_in % 2 == 0:
TypeError: not all arguments converted during string formatting

Aucun commentaire:

Enregistrer un commentaire