Python: Ein Programm schreiben, welches die größte und die kleinste Zahl ausgibt?

3 Antworten

Also wenn du ein Programm nicht verstehst dann kannst du dir einen Stift und ein Blatt Papier nehmen und das ganze Zeile für Zeile von Hand durchspielen und die Zwischenergebnisse aufschreiben.

In der Schleife passiert folgendes:

Zahl = 100
if 100 < 100     -> False
elif 100 > 100   -> Flase

Zahl = 25
if 25 < 100      -> True
  klein = 25
elif 25 > 100    -> Da if stimmte wird das nicht mehr geprüft

Zahl = 0
if 0 < 25        -> True
  klein = 0
elif 0 > 100     -> Da if stimmte wird das nicht mehr geprüft

Zahl = 97
if 97 < 0        -> False
elif 97 > 100    -> False

usw.

Alternativ dazu kannst du zB Microsoft VisualStudio Code verwenden - damit kannst du so ein Script debuggen und es Zeile für Zeile ablaufen lassen und sehen was passiert:

https://www.youtube.com/watch?v=w8QHoVam1-I&t=90s

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

Ich weiß gar nicht, was ich erklären soll. das programm ist ziemlich selbsterklärend.

lass dir einfach mit innerhalb der Schleife die Werte von Zahl, klein und groß ausdrucken, dann verstehst du vielleicht, was da passiert.

print(Zahl, klein, groß)

Coldsmith 
Fragesteller
 23.05.2019, 21:59

wie das Programm mit der if Bedingung das ausgeben konnte. MFG

Kaltschmidt

0

Also das von dir gestellte Programm wird wohl aufgrund der gesetzten Fragezeichen kaum ausführbar sein. Vermutlich wolltest du da Kommentare (#) setzen.

Das i in der letzten Zeile solltest du ebenfalls entfernen.

Der Ablauf des Programmes ist ziemlich einfach. Es wird eine Liste an Zahlen definiert und zwei Variablen werden erstellt, die jeweils auf den Wert des ersten Listenelements zeigen.

Die Anfangsvermutung ist, dass der Wert von klein (100) die kleinste Zahl in der Liste repräsentiert und der Wert von groß (ebenso 100) den größten. Um diese Startthese zu halten, müssen alle weiteren Elemente der Liste überprüft werden, denn möglicherweise gibt es eine kleinere / größere Zahl.

Dafür wird eine Schleife (for) definiert, die sich für jede ihrer Iterationen jeweils ein Element aus der Liste nimmt und dessen Wert in der Variable Zahl ablegt.

Die Verzweifung (if-elif) nutzt die Variable folgend für mindestens eine Überprüfung. Ist die aktuelle Zahl kleiner als der Wert in klein, wird klein überschrieben. Ist die aktuelle Zahl größer als der Wert in groß, wird groß überschrieben.

Ein manueller Probelauf macht dies nochmals deutlich:

Zahl = 100
100 < klein(100) => false
100 > groß(100) => false

Zahl = 25
25 < klein(100) => true (die Variable "klein" wird überschrieben)

Zahl = 0
0 < klein(25) => true (die Variable "klein" wird überschrieben)

Zahl = 97
97 < klein(0) => false
97 > groß(100) => false

usw. ...

Oder du stellst es dir bildlich vor: Vor dir liegt ein Stapel an Spielkarten. Um die Karte mit den höchsten / kleinsten Wert zu ermitteln, nimmst du die erste Karte vom Deck und vergleichst sie nun nacheinander mit den darauffolgenden Karten. Ist eine Karte im Wert kleiner / größer, legst du sie als neue höchste / kleinste Karte beiseite. Die alten Karten (die praktisch geschlagen wurden) wandern in den Stapel der bereits geprüften Karten.

P.S.: Du solltest unbedingt an deinem Ausdruck und deiner Rechtschreibung arbeiten. Das schreibe ich nicht, um dich zu ärgern, aber die ursprüngliche Fassung der Frage war bedenklich. Die Kommentare im Code sind es z.T. immer noch.