Seite 1 von 1

Arithmetisches Mittel- meine Aufgabe

Verfasst: Samstag 20. November 2021, 22:09
von Davidcopperfield
Hallo liebe Leute ich braeuchte auch jetzt eure Hilfe :) Ich ahne nicht wie es getan werden soll.
Schreibt ein Programm, welches:

1. die Variable numbers erstellt und ihr eine leere Liste zuweist,
2. vom Benutzer die Information entgegennimmt, wie viele Zahlen er eingeben möchte
3. diese Information in der Variablen n speichert,
4. in einer Schleife (die n-mal ausgeführt wird): den Benutzer nach einer Zahl fragt
5. welche vom Benutzer angegebene Nummer an das Ende der Nummernliste Numbers schreibt
6. derer Summe und Durchschnitt zählt
7. diese Zahlen und die Information, ob die Summe größer als der Durchschnitt ist, auf dem Bildschirm ausgibt:

Beispiel:

Code: Alles auswählen

Geben Sie n an: 4
Geben Sie die Nummer an: 1
Geben Sie die Nummer ein:: 2
Geben Sie die Nummer ein: -4
Geben Sie die Nummer durch: 5
Eingegebene Zahlen: 1 2 -4 5
Insgesamt: 4,
Durchschnittlich: 1
Die Summe ist größer!
Mein Kode:

Code: Alles auswählen

numbers = []
n = int(input("Gib N durch: "))
for numbers in range(1, n+1):
figures = float(input("Gib die Zahl ein: "))
numbers.append(figures)
print(numbers)
result1 = sum(numbers)
result2 = len(numbers)
result3 = sum(numbers)/len(numbers)
print(f'Die Summe:  {result1}')
print(f'Der Durchschnitt: {result3}')
if result1 > result3:
    print('Die Gesamtsumme ist größer als der Durchschnitt.')
elif result1 == result3:
    print('Die Summe ist gleich dem Durchschnitt')
else:
    print('Der Mittelwert ist größer als die Summe.')

Re: Arithmetisches Mittel- meine Aufgabe

Verfasst: Samstag 20. November 2021, 22:17
von Sirius3
Und wo ist jetzt genau Dein Problem?

Re: Arithmetisches Mittel- meine Aufgabe

Verfasst: Sonntag 21. November 2021, 16:13
von __blackjack__
@Davidcopperfield: Wenn Du eine Ausnahme bekommst, solltest Du die auch immer gleich mit zeigen. Einfach 1:1 kopieren. Dann muss man das nicht selbst herausfinden. Denn es ist ja nicht jeder Fall so offenssichtlich wie dieser.

Einrückung hat in Python eine wichtige Bedeutung. Was gehört denn alles zu der ``for``-Schleife und wie denkst Du sollte Python das wissen?

Wenn Du das korrigiert hast, wirst Du einen `AttributeError` bekommen weil ganze Zahlen keine `append()`-Methode haben. Das sollte aber auch offensichtlich sein, was da das Problem ist.

Weitere Anmerkungen: die ``for``-Schleife würde ich von 0 laufen lassen, denn dann kann man sich das ``+ 1`` für den Endwert sparen und auch gleich den Startwert, denn der Defaultwert wenn man nur ein Argument angibt, ist ja bereits 0.

Was soll denn `figures` bedeuten? Das ist ein komischer Name für *eine* Zahl. Man muss auch nicht jedes Zwischenergebnis an einen Namen binden.

Namen sollte man nicht durchnummerieren. In diesem Fall gibt es wesentlich bessere Namen für `result1`, `result2`, und `result3`. Namen die dem Leser verraten was der Wert bedeutet. Beispielsweise `durchschnitt` statt `result3`. Dann wird der Code gleich verständlicher.