Seite 1 von 2
Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 15:34
von Benny90
Ich brauche Hilfe!
ist die erste sache an der ich dermaßen festhänge.
Ist eine Open HPI Aufgabe und sitze heute wieder seit 6 Stunden daran.
Ich bitte euch um die Lösung oder ein beispiel wie ich es machen kann.
P.s ich sitze seit 2 Wochen an dieser Aufgabe und habe tausend verschiedene Dinge ausprobiert.
daher kein Beispiel.
Hier die Aufgabe ich wäre super happy wenn mir da mal jemand weiterhelfen kann.

Schreibe ein Programm, das die kleinste und die größte Zahl in einer Liste namens Zahlen ausgibt, zum Beispiel in der Form
Die kleinste Zahl ist 10 und die größte Zahl ist 97.
Du musst aber nicht unbedingt einen ganzen Satz ausgeben.</p>
Die Liste erhältst Du mit
from daten import Zahlen
Hinweis: Neben einer Schleife musst Du hier auch if-Anweisungen einsetzen.
Hinweis: Zahlen können auch negativ sein.
Hinweis: Zum Ausprobieren kannst Du zunächst mit festen Werten arbeiten, zum Beispiel
Zahlen = [41, 25, 40, 97, 76, 40, 43, 10]
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 15:41
von __blackjack__
@Benny90: Ich vermute mal da ``if`` benutzt werden sollen dürfen nicht die `min()`- und `max()`-Funktionen verwendet werden‽
Wo ist denn jetzt das konkrete Problem? Kannst Du denn sagen welches die kleinste und die grösste Zahl in der Liste ist? Wie machst Du das? Wenn Du das Schritt für Schritt beschreiben kannst, dann hast Du doch im Grunde schon fast das Programm dafür.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 15:56
von henridoh
Benutz zwei for-schleifen eine für kleiner, die andere für größer und teste ob der jetztiger wert größer/kleiner als der vorherige Min/Max wert ist
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 16:29
von Benny90
__blackjack__ hat geschrieben: Mittwoch 18. Juli 2018, 15:41
@Benny90: Ich vermute mal da ``if`` benutzt werden sollen dürfen nicht die `min()`- und `max()`-Funktionen verwendet werden‽
Wo ist denn jetzt das konkrete Problem? Kannst Du denn sagen welches die kleinste und die grösste Zahl in der Liste ist? Wie machst Du das? Wenn Du das Schritt für Schritt beschreiben kannst, dann hast Du doch im Grunde schon fast das Programm dafür.
Also ich schreibe das mal auf danke für die Tips.

min () max() darf nicht verwendet werden.
Liste[36, 45, -13, 6]
for i in Liste:
if i <= Liste <<-- Das geht leider nicht.Ich dachte das es dann die komplette Liste abgleicht.
for i in Liste:
if i <= Liste[0, 1, 2, 3] <<-- Das Leider auch nicht
for i in Liste:
if i < Liste[1], Liste[2], Liste[3], Liste[0]
glaube mein prob ist wie ich die einzelnen Werte aus der Liste abgleiche.
Das Ding ist das sich die liste jedes mal ändert ich kenne später die Werte nicht.
Die Länge der Liste variiert ebenfalls.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 16:45
von Sirius3
Die komplette Liste kannst Du mit min/max abgleichen, was Du ja nicht darfst, sondern Du mußt jedes einzelne Element nacheinander vergleichen (dafür ist ja die for-Schleife da), mit was, das ist dann noch die kleine Hürde.
@henridoh: die kleinste und größte Zahl kann man in einer Schleife ermitteln, da braucht man keine zwei.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 16:51
von ThomasL
Code: Alles auswählen
groesste_zahl = kleinste_zahl = Zahlen[0]
for wert in Zahlen
wenn wert grösser als groesste_zahl dann speichere wert in groesste_zahl
wenn wert kleiner als kleinste_zahl dann speichere wert in kleinste zahl
gebe kleinste_zahl und groesste_zahl aus
kannst du damit was anfangen?
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 16:56
von Benny90
ThomasL hat geschrieben: Mittwoch 18. Juli 2018, 16:51
Code: Alles auswählen
groesste_zahl = kleinste_zahl = Zahlen[0]
for wert in Zahlen
wenn wert grösser als groesste_zahl dann speichere wert in groesste_zahl
wenn wert kleiner als kleinste_zahl dann speichere wert in kleinste zahl
gebe kleinste_zahl und groesste_zahl aus
kannst du damit was anfangen?
Leider nicht.
glaube wenn es endlich bei mir klickt hab ichs raus im mom versteh ich eher nix

Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 17:22
von __blackjack__
@Benny90: Der Name `i` in Schleife für etwas anderes als einen Index zu verwenden ist verwirrend.
Noch genauer als das was ThomasL geschrieben hat, kann man es eigentlich nicht beschreiben ohne es gleich komplett in Code hin zu schreiben.
Mach Dir mal klar wie *Du* das *ohne* Computer lösen würdest. Wenn Du einen DIN A4-Zettel mit ein paar hundert Zahlen bekommst, so das man nicht auf den ersten Blick sehen kann was die grösste/kleinste Zahl auf dem Zettel ist. Wie würdest Du da Schritt für Schritt vorgehen? Was musst Du mit jeder Zahl machen und was müsstest Du Dir merken, im Kopf oder vielleicht auf einem anderen Zettel?
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 17:54
von Benny90
__blackjack__ hat geschrieben: Mittwoch 18. Juli 2018, 17:22
@Benny90: Der Name `i` in Schleife für etwas anderes als einen Index zu verwenden ist verwirrend.
Noch genauer als das was ThomasL geschrieben hat, kann man es eigentlich nicht beschreiben ohne es gleich komplett in Code hin zu schreiben.
Mach Dir mal klar wie *Du* das *ohne* Computer lösen würdest. Wenn Du einen DIN A4-Zettel mit ein paar hundert Zahlen bekommst, so das man nicht auf den ersten Blick sehen kann was die grösste/kleinste Zahl auf dem Zettel ist. Wie würdest Du da Schritt für Schritt vorgehen? Was musst Du mit jeder Zahl machen und was müsstest Du Dir merken, im Kopf oder vielleicht auf einem anderen Zettel?
Ich gebe dir recht, ich würde zahl für zahl vergleichen.
Mit den blanken Zahlen wäre das kein Problem, die Liste die ich erhalte kenne ich allerdings nicht ebenso die Länge.
Ich bekomme allerdings einen Fehler wenn ich es so hin schreibe.
for i in Liste:
if i < Liste[0], Liste[1], Liste[2], Liste[3], Liste[4]: <<--- Hier will ich die unterschiedlichen Positionen der Liste abfragen das geht leider nicht.(Fehler)
print("{} ist die kleinste Zahl".format(i))
ich habe ebenso versucht das ganze in eine Variable zu verpacken.
a = Liste[0], Liste[1], Liste[2], Liste[3], Liste[4
for Wert in Liste:
if Wert< a:
print("{} ist die kleinste Zahl".format(i))
geht aber leider auch net.
das Zahl für Zahl abgeglichen werden soll ist selbstverständlich.
ich weiß nicht wie ich die Liste abgleiche die ich net kenne.
Aber danke schonmal für die Hilfe.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 17:58
von Sirius3
Dann vergleich nochmal Zeile für Zeile, was ThomasL genau geschrieben hat, mit dem, was Du versucht hast.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 18:43
von Benny90
Habe ich versucht bekomme das aber nicht hin.

mit der ersten zeile Von Thomas L kann ich nix anfangen... leider.
Zahlen = [-150, -76, 40, 90, 7]
for Wert in Zahlen:
if Wert <= Wert:
print("kleine Zahl") <<---- bekomme nun 5 mal kleine Zahl das nützt nix.

Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 18:52
von Sirius3
Die erste Zeile ist schon Python-Code, die Du nur kopieren brauchst.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 19:08
von Benny90
Zahlen = [-150, -76, 40, 90, 7]
groesste_zahl = kleinste_zahl = Zahlen[0]
for Wert in Zahlen:
if Wert <= kleinste_zahl:
if Wert >= groesste_zahl:
print(kleinste_zahl, groesste_zahl)
ich bekomme das ------->> -150 -150
Ich verstehe das grad überhaupt nicht mehr :O
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 19:13
von ThomasL
Soweit schon mal ganz gut
Was soll denn jeweils nach den if passieren, da fehlt doch was, oder?
beachte dabei die Einrückungen bei for-schleifen und if-Abfragen
und das prüfen auf Gleichheit ist unnötig
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 19:27
von Benny90
ThomasL hat geschrieben: Mittwoch 18. Juli 2018, 19:13
Soweit schon mal ganz gut
Was soll denn jeweils nach den if passieren, da fehlt doch was, oder?
beachte dabei die Einrückungen bei for-schleifen und if-Abfragen
und das prüfen auf Gleichheit ist unnötig
Schon mal gut das ich scheinbar auf dem richtigen Weg bin.

Thomas was noch fehlen kann ist das speichern.
Ich weis absolut net wie ich das machen soll das kam im Online Kurs nicht vor.
Kannst du mir einen Tipp geben?
kann es sein das die Gleichheit von meinen Einrückungen kommt?
Habe schon mal ein Ergebnis bekommen und keine Fehlermeldung das fühlt sich schon mal gut an.

Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 19:32
von Benny90
Zahlen = [-150, -76, 40, 90, 7]
groesste_zahl = kleinste_zahl = Zahlen[0]
for Wert in Zahlen:
if Wert <= kleinste_zahl and Wert >= groesste_zahl:
print(kleinste_zahl, groesste_zahl) <<<-----Wenn ich hier die Einrückung wegnehme bekomme ich wieder einen Fehler.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 19:42
von Sirius3
Wie man Variablen mit Werten belegt, hast Du ganz sicher schon in Deinem Online-Kurs gelernt, zumal Du das schon an zwei Stellen in Deinem Code machst.
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 19:45
von ThomasL
Code: Alles auswählen
zahlen = [-150, -76, 40, 90, 7]
groesste_zahl = kleinste_zahl = Zahlen[0]
for wert in zahlen:
if wert < kleinste_zahl:
# was soll hier passieren wenn die Zahl die in wert gespeichert ist, kleiner ist als die Zahl die in kleinste_zahl gespeichert ist?
if wert > groesste_zahl:
# was soll hier passieren wenn die Zahl die in wert gespeichert ist, größer ist als die Zahl die in groesste_zahl gespeichert ist?
print(kleinste_zahl, groesste_zahl)
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 20:01
von Benny90
Hilfe, ja ich weis wie man das mit den Variablen macht.
Jetzt in dem Fall stehe ich wieder auf dem Schlauch
Zahlen = [-150, -76, 40, 90, 7]
Wert = Wert < Zahlen[0], Zahlen[1], Zahlen[2], Zahlen[3], Zahlen[1]
Wert = Wert > Zahlen[0], Zahlen[1], Zahlen[2], Zahlen[3], Zahlen[1]
groesste_zahl = kleinste_zahl = Zahlen[0]
for Wert in Zahlen:
if Wert <= kleinste_zahl:
if Wert >= groesste_zahl:
print(kleinste_zahl, groesste_zahl) <<<<<<----- Fehler
Re: Ich verzweifele (Python)Anfänger
Verfasst: Mittwoch 18. Juli 2018, 20:05
von Benny90
Zahlen = [-150, -76, 40, 90, 7]
groesste_zahl = kleinste_zahl = Zahlen[0]
for Wert in Zahlen:
if Wert <= kleinste_zahl:
print(kleinste_zahl)
if Wert >= groesste_zahl:
print(groesste_zahl)
print(kleinste_zahl, groesste_zahl)
So jetzt bekomme ich 150 mal die - 150 :O