Mielőtt gondolkodni, hogy hogyan hajtsák végre ezt a python (vagy bármilyen nyelven) nézzük meg a pszeudokódokra, ami úgy néz ki, mint egy nagyon jó terv, hogy megoldja a problémát.
Gondolom, hogy az egyik dolog, amit lehet, hogy elakadás van az út a pszeudokódokra szám változó , mint a highés low. Az út, hogy megértsük változók megvizsgálni azokat résidők érték tárolható. Egy adott időben, egy változó van némi értéke, mint az 5-ös, vagy utalás egy megnyitott fájl. Ez az érték lehet hívni bármikor segítségével a nevét, illetve lehet adni egy új értéket rendelünk, és a régi érték lesz elfelejteni az új értéket vesz helyére.
A pszeudokódját szám három változó, high, lowés tries. Azt is elmondja, hogy milyen kezdeti értékük legyen. Miután a második vonal lefutása az értékeket beállítottuk 1000, 1 és 1, illetve, de hogy új értékeket a program előrehaladtával.
Másik jellemzője a pszeudokód egy feltételes hurok, és egy eset elemzése a felhasználótól. A fordítást a pszeudokódokra hurok helytelen. Az Ön esetében, ha már létrehoztunk egy új változót, iés utasította a programot futtatni a hurok test minden i értéke 1 és 1000. Nyilvánvaló, hogy ez nem egy csomó köze a pszeudokódokra.
Ehelyett mit szeretne csinálni a loop örökké, amíg egy feltétel (amely megváltoztatja a ciklus törzse) hamissá válik. A python, az whileállítás ez. Ha ismeri egy ifnyilatkozatot, whileugyanúgy néz ki, de miután a szervezet végzi, a feltétel átértékelődik, és a test ismét lefut, ha ez még mindig igaz.
Végül az eset elemzése a hurok teste igényel összehasonlítva valamit várt értékeket. Bár néhány más nyelven is számos módon fejezik ki ezt a python már csak if- elif- elsezáradékokat.
Kívül átalakítja pszeudokódokra dolgozó kód, valószínűleg hasznos megérteni, mi a program valójában csinál. A kulcs itt van a 4-es vonal, ahol a program kitalálja átlagosan két értékeket. azt követően, hogy a program működik, hogy mennyire jól a becslés dolgozott ki.
Az első futás át a hurkon, és highamely 1000 és lowamely 1, az átlag 500 (valójában az átlag 500,5, de mivel mi átlagosan egész számok, python találgatások, hogy szeretnénk az eredmény a részleg is egész ). Nyilvánvaló, hogy a becslés csak 0,1% az esélye, hogy van, de ha ez a baj, a felhasználó várhatóan mondja el, ha nem volt túl magas, vagy túl alacsony. Akárhogy is, ez a válasz teljesen kiküszöböli az 50% -át lehet találgatások.
Ha például a felhasználó gondolt alacsony számát, majd amikor a program kitalálta 500, a felhasználó azt mondja a program, amely 500 volt túl magas, és ezután a program soha nem kell kitalálni, hogy ez a szám a tartományban 501 thru 1000. Ez lehet menteni a számítógép a sok munka.
Ahhoz, hogy ezt az információt használja, a program nyilvántartja a lehetséges értékek a kapu szám lehet. Ha a szám kitalálta túl magas, akkor a program beállítja a felső határ lefelé, csak alul a találgatás, és ha a becslés túl alacsony volt, a program igazodik az alsó kötött felfelé éppen a találgatás.
Amikor a program kitalálja ismét a találgatás kellős közepén a lehetséges tartomány, vágás tartományban felében újra. A számos lehetséges találgatások mentek az eredeti 1000-500 egy találgatás, 250 két találgatások. Ha a program szörnyű szerencse, és nem értem a két (ami valójában elég valószínű), akkor a harmadik, azt csak 125 szám balra kell aggódnia. Miután a negyedik találgatás, csak 62 szám marad tartományban. Ez így folytatódik, és miután nyolc találgatások, csak 3 szám marad, és a program megpróbálja a középső szám kilencedik kitalálni. Ha ez kiderül, hogy rossz, csak egy szám van hátra, és a program kitalálja meg!
Ez a technika ketté egy sor a felét, majd folytatja a szorosabb fele úgynevezett felező és úgy tűnik, a legkülönbözőbb témákról érdekes számítástechnika.
Mit szólnál egy kis kódot! Mivel nem akarom megfosztani a tanulási tapasztalat, én csak ad egy kis töredék, amelyek segítenek mentén. python nyelven tervezett interaktív feltárása, így indítsa el a tolmács, és hogy ez egy lövés. Majd kiküldetés példát az utasításokat látható, valójában nem írja ezt.
Íme egy példa a whilezáradék:
>>> x = 1000
>>> while x > 1:
... x = x/2
... print x
...
500
250
125
62
31
15
7
3
1
>>> x
1
Első konzol felhasználói bevitelt kell tenni a raw_input()funkciót. Csak vissza, amit a felhasználó beír. Ez egy kicsit nehezebb megmutatni. Az egyszerűség kedvéért, miután minden sora python, amely előírja, input, én írja: „Hello World!” (idézőjelek nélkül)
>>> raw_input()
Hello World!
'Hello World!'
>>> y = raw_input()
Hello World!
>>> print y
Hello World!
>>>
Mit szólnál egy kis ötvözi a fogalmak!
>>> 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
>>>
Hoppá. kicsit egy hiba van. Ha lehet megjavítani!