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".