es geht um diesen simplen Code aus meinem magischem dicken fetten Schinken an Buch:
Code: Alles auswählen
geheimnis=4
versuch=0
zaehler=0
while versuch!=geheimnis:
versuch=int(input("Raten Sie:"))
if versuch<geheimnis:
print("Zu klein")
if versuch>geheimnis:
print("Zu groß")
zaehler=zaehler+1
print("Super, Sie haben es in",zaehler,"Versuchen geschafft")
Einer Variable geheimnis wird dem Wert 4 zugefügt, den Variablen versuch und zaehler jeweils die Werte 0. Dann kommt eine Schleife, die sich solange wiederholt, wenn versuch ungleich geheimnis ist. Sprich wenn versuch und geheimnis gleicher Werte besitzen, gilt diese Schleife nicht mehr und die Aufgabe wurde erfolgreich gelöst. Mit input erwarte ich eine Eingabe, will sie jedoch zuvor nach int umkonventieren, weil inputs normal Strings aufnehmen. In der Schleife wird abgefragt, ob versuch kleiner ist als geheimnis, wenn ja printe "zu klein". Wenn Versuch größer als geheimnis ist, dann printe "zu groß". Wenn erfolgreich ausgerechnet, dann erweitere zaehler um 1. Und zum Schliss printet er "Super, Sie haben es in",zaehler,"Versuchen geschafft".
Problem bei diesem Code:
Man kann so oft Versuche machen, jedoch steht gibt immer Zaehler den Wert1 aus.
Das ist der offizielle Buchcode. Nun habe ich den Code meines Wissens nach verbessert:
Code: Alles auswählen
geheimnis=4
versuch=0
zaehler=0
while versuch!=geheimnis:
versuch=int(input("Raten Sie:"))
if versuch<geheimnis:
print("Zu klein")
zaehler=zaehler+1
if versuch>geheimnis:
print("Zu groß")
zaehler=zaehler+1
zaehler=zaehler+1
print("Super, Sie haben es in",zaehler,"Versuchen geschafft")
Frage2: Wie kann man das Ende der Schleife festlegen. Ich habe mal in anderer Sprache geproggt, da gab es Befehle wie While ... EndWhile If ... EndIf?