Arithmetisches Mittel- meine Aufgabe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Davidcopperfield
User
Beiträge: 8
Registriert: Freitag 12. November 2021, 22:15

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.')
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Und wo ist jetzt genau Dein Problem?
Benutzeravatar
__blackjack__
User
Beiträge: 13080
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten