Durchschnittswerte

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Mondkraft
User
Beiträge: 5
Registriert: Sonntag 7. Februar 2016, 18:09

Ich habe folgenden Code eingegeben:

Das Problem daran ist, dass es zu einen IndentationError kommt. Ich habe mir den Code mehrfach angesehen und finde keine Lösung. Hat vielleicht Jemand eine Idee?

Code: Alles auswählen

messwerte = []

# Werte einlesen
while True:
    userInput = input("Grad in Celsiums (q beendet): ")
    if userInput == "q":
        break

    temp = float(userInput)
    messwerte.append(temp)

# Durchschnitt berechnen
 sum = 0.0
 for value in messwerte:
     sum += value

schnitt = sum / len(messwerte)

print("Durchschnittstemperatur (°C): " + str(schnitt))
Hier die Errormeldung:

Code: Alles auswählen

/home/dominik/PycharmProjects/5-Grundlagenprojekt/venv/bin/python /home/dominik/PycharmProjects/5-Grundlagenprojekt/Main.py
  File "/home/dominik/PycharmProjects/5-Grundlagenprojekt/Main.py", line 13
    sum == 0.0
             ^
IndentationError: unindent does not match any outer indentation level

Process finished with exit code 1
Sirius3
User
Beiträge: 17822
Registriert: Sonntag 21. Oktober 2012, 17:20

Mit welcher Einrückebene stimmt denn die `sum`-Zeile überein? Soll der Block innerhalb der while-Schleife sein, oder außerhalb?
keanuf_herzi
User
Beiträge: 2
Registriert: Montag 18. Januar 2016, 12:28

versuchs hier mit

Code: Alles auswählen

messwerte = []

# Werte einlesen
while True:
    userInput = input("Grad in Celsiums (q beendet): ")
    if userInput == "q":
        break

    temp = float(userInput)
    messwerte.append(temp)
    # Durchschnitt berechnen
    sum = 0.0
    for value in messwerte:
        sum += value

    schnitt = sum / len(messwerte)

    print("Durchschnittstemperatur (°C): " + str(schnitt))
Benutzeravatar
Mondkraft
User
Beiträge: 5
Registriert: Sonntag 7. Februar 2016, 18:09

Ich habe den Fehler gefunden. Ich habe wohl versehentlich an der falschen Stelle eingerückt. Jetzt funktioniert es problemlos:

Code: Alles auswählen

messwerte = []

# Werte einlesen
while True:
    userInput = input("Grad in Celsiums (q beendet): ")
    if userInput == "q":
        break

    temp = float(userInput)
    messwerte.append(temp)

# Durchschnitt berechnen
sum = 0.0
for value in messwerte:
    sum += value

schnitt = sum / len(messwerte)

print("Durchschnittstemperatur (°C): " + str(schnitt))
Sirius3
User
Beiträge: 17822
Registriert: Sonntag 21. Oktober 2012, 17:20

Zum Summieren gibt es `sum`, für den Mittelwert `statistics.mean`, man muß das also nicht selbst programmieren. Statt Strings mit + zusammenzustückeln, gibt es format-Strings. Variablennamen werden klein_mit_unterstrich geschrieben:

Code: Alles auswählen

import statistics
messwerte = []
while True:
    user_input = input("Grad in Celsius (q beenden):")
    if user_input == 'q':
        break
    messwerte.append(float(user_input))
print(f"Durchschnittstemperatur {statistics.mean(messwerte):.1f}°C")
Benutzeravatar
/me
User
Beiträge: 3557
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

keanuf_herzi hat geschrieben: Montag 26. August 2019, 18:16 versuchs hier mit
Einrückungen zu raten ist eine blöde Idee. Wenn man sich anschaut was das Programm tun soll sieht man sofort, dass deine Lösung nicht gut ist.
keanuf_herzi
User
Beiträge: 2
Registriert: Montag 18. Januar 2016, 12:28

/me hat geschrieben: Dienstag 27. August 2019, 08:20
keanuf_herzi hat geschrieben: Montag 26. August 2019, 18:16 versuchs hier mit
Einrückungen zu raten ist eine blöde Idee. Wenn man sich anschaut was das Programm tun soll sieht man sofort, dass deine Lösung nicht gut ist.
/me du hast natürlich recht,
nächstes mal erst ordentlich lesen, verstehen, umsetzten und dann antworten sorry.
Beim nächsten mal dann. :|
Antworten