Seite 1 von 1
Statistik
Verfasst: Donnerstag 5. November 2020, 20:30
von StevenB99
Hallo, Das ist eine Endlosschleife, wie korrigiere ich das? Ich will das er mit min, max und mittelwert anzeigt.
Code: Alles auswählen
eingabe = 1
summe=0
anzahl_eingabe = 1
minimum=5
maximum=9
while eingabe!=0:
eingabe=int(input("Bitte geben sie die " +str(anzahl_eingabe+1)+ " Zahl ein"))
if eingabe!=0:
if eingabe<minimum:
minimum=eingabe
if eingabe>maximum:
maximum=eingabe
anzahl_eingabe=anzahl_eingabe+1
summe=summe+eingabe
if anzahl_eingabe!=0:
mittelwert=summe/anzahl_eingaben
anzahl_eingabe=anzahl_eingabe+1
print("Sie haben", anzahl_eingaben, "Werte eingegeben.")
print("Die Summe der Werte ist:", summe)
print("Das Minimum ist:", minimum)
print("Das Maximum ist:", maximum)
print("Der Mittelwert ist:", mittelwert)
Re: Statistik
Verfasst: Donnerstag 5. November 2020, 20:42
von __deets__
Du musst auf die Einrückung achten. Was in der Schleife passieren soll, muss auch zu der Schleife gehören.
Re: Statistik
Verfasst: Donnerstag 5. November 2020, 20:57
von Sirius3
Warum fängst Du mit der 2. Zahl an?
Statt Strings mit + zusammenzustückeln benutzt man Formatstrings.
Statt eingabe mit einem Dummy-Wert zu belegen, dass die while-Schleife beginnt, benutze eine while-True-Schleife.
Warum erhöhst Du anzahl_eingabe nochmal um 1 so dass der ausgegebene Wert um 2 falsch ist?
Die Frage verstehe ich nicht, da Du nirgends eine Endlosschleife hast.
Code: Alles auswählen
summe = 0
anzahl_eingabe = 0
minimum = 5
maximum = 9
while True:
eingabe = int(input(f"Bitte geben sie die {anzahl_eingabe+1} Zahl ein: "))
if eingabe == 0:
break
if eingabe < minimum:
minimum = eingabe
if eingabe > maximum:
maximum = eingabe
anzahl_eingabe += 1
summe += eingabe
if anzahl_eingabe != 0:
mittelwert = summe / anzahl_eingaben
print("Sie haben", anzahl_eingaben, "Werte eingegeben.")
print("Die Summe der Werte ist:", summe)
print("Das Minimum ist:", minimum)
print("Das Maximum ist:", maximum)
print("Der Mittelwert ist:", mittelwert)
Re: Statistik
Verfasst: Donnerstag 5. November 2020, 21:04
von StevenB99
Ich verstehe das nicht, ich kann durchgehend Zahlen eingeben. Das hört nie auf.
Re: Statistik
Verfasst: Donnerstag 5. November 2020, 21:05
von Sirius3
Es hört auf, wenn Du eine 0 eingibst.
Re: Statistik
Verfasst: Donnerstag 5. November 2020, 22:20
von StevenB99
Ich meine die printfunktion kommt garnicht. Ich kann wie im Bild unendlich viele zahlen eingeben und mit 0 kriege ich ein Error. Mittelwert u.s.w wird mir garnicht angezeigt.
![Bild]()
wie kann ich eigene Bilder posten?
Re: Statistik
Verfasst: Donnerstag 5. November 2020, 22:27
von __blackjack__
@StevenB99: Wenn Du einen Fehler bekommst, dann musst Du den beheben. Der ist ja auch ziemlich offensichtlich.
Re: Statistik
Verfasst: Freitag 6. November 2020, 07:34
von StevenB99
Ich meine das anders. Ich komme erst garnicht bis zu diesem Block
Code: Alles auswählen
if anzahl_eingabe != 0:
mittelwert = summe / anzahl_eingaben
print("Sie haben", anzahl_eingaben, "Werte eingegeben.")
print("Die Summe der Werte ist:", summe)
print("Das Minimum ist:", minimum)
print("Das Maximum ist:", maximum)
print("Der Mittelwert ist:", mittelwert)
Bitte geben sie die 1 Zahl ein: 4
Bitte geben sie die 2 Zahl ein: 10
Bitte geben sie die 3 Zahl ein: 10
Bitte geben sie die 4 Zahl ein: 100
Bitte geben sie die 5 Zahl ein: 4300
Bitte geben sie die 6 Zahl ein: 400
Bitte geben sie die 7 Zahl ein: 4005
Bitte geben sie die 8 Zahl ein: 400
Bitte geben sie die 9 Zahl ein: 300
Bitte geben sie die 10 Zahl ein: 300
Bitte geben sie die 11 Zahl ein: 200
Bitte geben sie die 12 Zahl ein: 4000
.........
........
.... Das geht für immer so weiter. Minimum,Maximum und Mittelwert bekomme ich nicht raus.
Re: Statistik
Verfasst: Freitag 6. November 2020, 07:38
von sparrow
Das hat __deets__ doch berits in der ersten Antwort zu deiner Frage beantwortet.
Zitat: "Du musst auf die Einrückung achten. Was in der Schleife passieren soll, muss auch zu der Schleife gehören."
Wobei du dir die letzte Prüfung auf "0" sparen kannst. Wenn direkt nach der Eingabe der Wert nicht "0" war und er nicht vändert wird, dann ist er ja nun auch noch nicht "0".