2 Stimmen

Rechner für durchschnittliche Niederschlagsmenge

Dies ist das aktualisierte Programm, das ich bis jetzt geschrieben habe:

# This program averages rainfall per month.  It asks the user for the number
# of years.  It will then display the number of months, the total inches of
# rainfaill, and the average rainfall per month for the entire period.

# Get the number of years.

total_years = int(input('Enter the amount of years: '))

# Get the amount of rainfall for each month of each year.

for years in range(total_years):
    # Initialize the accumulator.
    total = 0.0
    print('Year', years + 1)
    print('----------------')
    for month in ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'):
        inches = float(input(month))
        total += inches

total_inches = total

total_month = total_years * 12

average_inches = total / total_month

        # Display the average.
print('The total number of months is: ', total_month)
print('The total inches of rainfall is: ', total_inches)
print('The average rainfall per month for the entire period is: ', average_inches)

print()

Dies ist die neue Fehlermeldung, die ich erhalte, wenn ich versuche, den Code zu testen:

Traceback (most recent call last):   File
"C:/Users/Alex/Desktop/Programming Concepts/Homework 2/Chapter
5/Average Rainfall maybe.py", line 23, in <module>
average_inches = total / month
TypeError: unspupported operand type(s) for /: 'float' and 'str'

Haben Sie eine Idee, wie man diesen Code reparieren/verbessern kann?

Jetzt muss ich nur noch meine Berechnungen korrigieren. Ich glaube, sie sind falsch (Zeilen 23-27).

4voto

dbr Punkte 158949

Die Fehlermeldungen verweisen darauf, wo der Fehler aufgetreten ist:

average_inches = total / month

Konkret,

TypeError: unspupported operand type(s) for /: 'float' and 'str'

sagt, dass es einen Float nicht dividieren kann ( total ) durch eine Zeichenkette ( month ).

month ist das völlig Falsche, um durch etwas zu dividieren (es ist nur eine Zeichenkette, die "Januar" oder was auch immer enthält). Sie wollen durch den Anzahl der Monate

Als Tipp würde ich vorschlagen, mit dem Tun zu beginnen:

ALL_MONTHS = ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'):

Dann ändern Sie Ihre Schleife in:

for month in ALL_MONTHS:

Auf diese Weise können Sie sich auf ALL_MONTHS später wieder...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X