Arithmetisches Mittel in Python mit einer While-Schleife?

3 Antworten

mhm...python kann ich nicht, aber in Pseudo Code

var liste = "";
var eingabe = 0;
while (true)
{
  eingabe = input;
  if(eingabe == 0)
  {
    break;
  }
  else
  {
    liste.add(eingabe);
  }
}
var summe = 0;
foreach(zahl in liste)
{
  summe += zahl;
}
println("Anzahl der eingegeben Zahlen : " + liste.size);
println("Durchschnitt : " + (summe / liste.size));

so in etwa. Musst du halt jetzt in Pyhton übersetzen.


crxptx 
Beitragsersteller
 05.05.2021, 14:47

Alles klar ich danke dir, versuche es mal zu übersetzen!

0

Schreibe eine Schleife, bei der du in jedem Durchlauf eine Benutzereingabe einliest. Prüfe, ob die Eingabe "0" gewesen ist (dann kannst du mit einem Break die Schleife beenden). Solange die Eingabe nicht "0" ist, nutze die Eingabe jeweils zur weiteren Berechnung des arithmetischen Mittels.

------------

Du könntest die Eingaben alle in einer Liste speichern, und am Ende die Werte in der Liste summieren und diese Summe durch die Anzahl der Werte in der Liste dividieren.

Allerdings brauchst du am Ende nur das arithmetische Mittel und die Anzahl der Werte, die ausgegeben werden sollen. Demnach kann es sinnvoll sein, statt einer Liste aller Werte nur einen aktuellen Summenwert und die Anzahl der Werte abzuspeichern. (Das spart gegebenenfalls Platz im Speicher.)

D.h. du hast einen Summenwert, den du beispielsweise summe nennst, und eine Zählvariable, die du beispielsweise anzahl nennst. Bei jeder Eingabe (ungleich 0) addierst du dann den eingegeben Wert zu summe, und erhöhst anzahl um 1.


mihisu  05.05.2021, 15:00

Beispiel mit Zwischenspeicherung aller Zahlen in einer Liste:

print("Gib ganze Zahlen ein, deren arithmetisches Mittel berechnet werden soll.")
print("[Bestätige die eingegebene Zahl jeweils mit Enter.]")
print("[Durch Eingabe von 0 wird die Zahlenabfrage beendet.]")
L = []
while True:
    eingabe = int(input("Nächste Zahl: "))
    if eingabe == 0:
        break
    else:
        L.append(eingabe)
anzahl = len(L)
arithM = sum(L)/anzahl
print(f"Es wurden {anzahl} Zahlen eingegeben.")
print(f"Arithmetische Mittel dieser Zahlen: {arithM}")

Beispiel ohne Zwischenspeicherung aller Zahlen in einer Liste:

print("Gib ganze Zahlen ein, deren arithmetisches Mittel berechnet werden soll.")
print("[Bestätige die eingegebene Zahl jeweils mit Enter.]")
print("[Durch Eingabe von 0 wird die Zahlenabfrage beendet.]")
anzahl = 0
summe = 0
while True:
    eingabe = int(input("Nächste Zahl: "))
    if eingabe == 0:
        break
    else:
        anzahl += 1
        summe += eingabe
arithM = summe/anzahl
print(f"Es wurden {anzahl} Zahlen eingegeben.")
print(f"Arithmetische Mittel dieser Zahlen: {arithM}")
0

Ich hab noch nie irgendwas in Python programmiert und kann dir entsprechend auch keinen korrekten Quellcode soufflieren, aber die allgemeine Logik dahinter ist ja in jeder Sprache gleich.

Du deklarierst erstmal 2 variablen als integer

Dann beginnst du deine while Schleife mit der Abbruch Bedingung solange die Eingabe ≠ 0 ist

In der Schleife liest du eine Zahl ein welche du auf deine erste Variable (n) aufaddierst

Dann rechnest du die zweite Variable (i) + 1

Dann kommt der Fuß der Schleife

Dann kommt die Ausgabe von i - 1 (Anzahl der eingegebenen zahlen) und n/(i-1)

Woher ich das weiß:Berufserfahrung – Administrator mit über 12 Jahren Berufserfahrung

Xearox  05.05.2021, 14:42

so in etwa hab ichs auch geschrieben.

1