Seite 1 von 1

Durchschnittswerte

Verfasst: Montag 26. August 2019, 17:59
von Mondkraft
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

Re: Durchschnittswerte

Verfasst: Montag 26. August 2019, 18:06
von Sirius3
Mit welcher Einrückebene stimmt denn die `sum`-Zeile überein? Soll der Block innerhalb der while-Schleife sein, oder außerhalb?

Re: Durchschnittswerte

Verfasst: Montag 26. August 2019, 18:16
von keanuf_herzi
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))

Re: Durchschnittswerte

Verfasst: Montag 26. August 2019, 18:19
von Mondkraft
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))

Re: Durchschnittswerte

Verfasst: Montag 26. August 2019, 18:43
von Sirius3
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")

Re: Durchschnittswerte

Verfasst: Dienstag 27. August 2019, 08:20
von /me
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.

Re: Durchschnittswerte

Verfasst: Freitag 20. September 2019, 22:47
von keanuf_herzi
/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. :|