Bevor darüber nachzudenken, wie dies in Python zu implementieren (oder einer beliebigen Sprache) können auf der Pseudo-Code aussehen, die wie ein ziemlich guter Plan sieht das Problem zu lösen.
Ich würde vermuten , dass eine Sache , die Sie die Art und Weise angesteckt werden könnten immer ist der Pseudo - Code verweist auf Variablen , wie highund low. Die Art und Weise Variablen zu verstehen , ist es, sie Schlitze zu berücksichtigen , die Werte gespeichert werden können. Zu jedem gegebenen Zeitpunkt besitzt eine Variable einen Wert, wie die Zahl 5, oder einen Verweis auf eine geöffnete Datei. Dieser Wert kann mit seinem Namen jederzeit einberufen werden, oder es kann mit dem neuen Wert an ihre Stelle durch die Zuordnung zu ihm, und der alten Wert wird vergessen , einen neuen Wert gegeben werden.
Der Pseudo - Code verweist auf drei Variablen high, lowund tries. Es sagt Ihnen auch , was ihre Anfangswerte sein sollte. Nachdem die zweite Zeile ausgeführt wurde, werden diese Werte auf 1000 gesetzt, 1 bzw. 1 sind, aber sie nehmen auf neue Werte , während das Programm fortschreitet.
Ein weiteres Merkmal des Pseudo - Code ist eine bedingte Schleife, und eine Fall - Analyse der Benutzereingabe. Ihre Übersetzung der Schleife des Pseudo - Code ist falsch. In Ihrem Fall haben Sie eine neue Variable erstellt, iund haben Ihr Programm angewiesen , den Schleifenkörper mit jedem Wert von i zwischen 1 und 1000. Offensichtlich ist dies nicht eine ganze Menge zu tun mit dem Pseudo - Code auszuführen.
Stattdessen , was Sie tun wollen , ist eine unendliche Schleife, bis eine bestimmte Bedingung (die in der Schleife ändert) falsch wird. In Python, der whiletut dieser Aussage. Wenn Sie mit einer vertraut sind ifAnweisung, whilesieht gleich aus , aber nachdem der Körper fertig ist, wird die Bedingung erneut ausgewertet und der Körper wird wieder ausgeführt , wenn es immer noch wahr ist.
Schließlich erfordert die Fallanalyse im Körper der Schleife Vergleich etwas Wert zu erwarten. Obwohl einige andere Sprachen eine Reihe von Möglichkeiten haben , dies auszudrücken, in Python haben wir nur if- elif- elseKlauseln.
Außerhalb von Pseudo-Code zu arbeiten Code Transformation, ist es wahrscheinlich sinnvoll, zu verstehen, was das Programm eigentlich tut. Der Schlüssel hier ist in Zeile 4, wobei das Programm den Durchschnitt der beiden Werte Vermutungen. nach, dass das Programm wirkt, wie gut die Vermutung ausgearbeitet.
Im ersten Durchlauf durch die Schleife, mit high1000 enthalten , und low1 enthalten, ist die durchschnittliche 500 (eigentlich der Durchschnitt liegt bei 500,5, aber da wir durchschnittlich ganze Zahlen, Python Vermutungen , dass wir das Ergebnis der Division wollen eine ganze Zahl auch sein ). Offensichtlich , dass Vermutung hat nur eine 0,1% ige Chance, richtig zu sein, aber wenn es falsch ist, wird der Benutzer erwartet , uns zu sagen , wenn es zu hoch ist, oder zu niedrig. So oder so, diese Antwort vollständig eliminiert 50% der möglichen Vermutungen.
Wenn, zum Beispiel, wurde der Benutzer einer geringen Zahl denkt, dann, wenn das Programm erraten 500, der Benutzer das Programm würde sagen, dass 500 zu hoch war, und dann würde das Programm nicht immer erraten muß, dass die Zahl in der war Bereich von 501 bis 1000, dass der Computer eine Menge Arbeit sparen kann.
Um diese Informationen in Gebrauch genommen, hält das Programm den Überblick über die Bandbreite der möglichen Werte die Zielnummer sein könnte. Wenn erraten die Zahl zu hoch ist, passt das Programm seine obere Schranke nach unten, knapp unterhalb der Vermutung, und wenn die Vermutung zu niedrig war, passt das Programm seine untere nach oben bis knapp über die Vermutung gebunden.
Wenn das Programm wieder errät, ist die Vermutung richtig in der Mitte des möglichen Bereichs, wieder den Bereich in zwei Hälften schneiden. Die Anzahl der möglichen Vermutungen ging von den Original-1000-500 in einer Vermutung, 250 in zwei Vermutungen. Wenn das Programm allerdings nicht Glück hat, und kann es nicht zwei bekommen (was eigentlich ziemlich wahrscheinlich ist), dann durch die dritten, hat es nur 125 Zahlen mehr zu kümmern. Nach der vierten Vermutung, bleiben nur 62 Zahlen in Reichweite. Dies setzt sich fort, und nach acht Vermutungen, nur 3 Zahlen bleiben, und das Programm versucht, die mittlere Zahl für seine neunte Vermutung. Wenn das falsch erweist, nur eine Zahl übrig, und das Programm errät es!
Diese Technik des einen Bereich in zwei Hälften teilt und dann in der engeren Hälfte weiterhin aufgerufen bisection und erscheint in einem weiten Bereich Themen von Interesse für Informatik.
Wie wäre es mit CODE! Da ich will Ihnen nicht Sie der Lernerfahrung berauben, ich werde nur ein paar Schnipsel, die Sie entlang helfen könnte. Python eine Sprache für interaktive Exploration, so starten Sie Ihren Dolmetscher und geben diesen einen Schuss ausgelegt ist. Ich werde Entsendung Beispiele mit den Anweisungen gezeigt, nicht wirklich, dass ein.
Hier ist ein Beispiel für die Verwendung von whileKlausel:
>>> x = 1000
>>> while x > 1:
... x = x/2
... print x
...
500
250
125
62
31
15
7
3
1
>>> x
1
Erste Konsole Eingabe vom Benutzer sollte durch die getan werden raw_input()Funktion. Es gibt nur unabhängig von den Benutzertypen. Dies ist ein wenig schwieriger zu zeigen. Um die Dinge zu vereinfachen, nach jeder Zeile von Python , die eine Eingabe erfordert, werde ich geben „Hallo Welt!“ (ohne die Anführungszeichen)
>>> raw_input()
Hello World!
'Hello World!'
>>> y = raw_input()
Hello World!
>>> print y
Hello World!
>>>
Wie wäre es die Kombination von Konzepten!
>>> myvar = ''
>>> while myvar != 'exit':
... myvar = raw_input()
... if myvar == 'apples':
... print "I like apples"
... elif myvar == 'bananas':
... print "I don't like bananas"
... else:
... print "I've never eaten", myvar
...
apples
I like apples
mangoes
I've never eaten mangoes
bananas
I don't like bananas
exit
I've never eaten exit
>>>
Hoppla. wenig von einem dort Fehler. Sehen Sie, wenn Sie es beheben!