|
|
6. sor: |
6. sor: |
| <html> | | <html> |
| <body> | | <body> |
− | This is my first web page | + | Ez a weboldalam. |
| </body> | | </body> |
| </html> | | </html> |
| | | |
− | | + | * Mentsd el. |
− | | + | * Menj a http://www.math.bme.hu/~userneved oldalra, és örülj! |
− | | + | |
− | | + | |
− | * Mentsd el, és futtasd a scriptedet! (''python kerdez.py'') | + | |
− | * Most kicsit kiegészítjük a scriptet, hogy tartalmazhasson ékezetes betűket, és hogy kényelmesebben futtatható legyen (a ''python'' parancs begépelése nélkül is): | + | |
− | <python>
| + | |
− | #!/usr/bin/python
| + | |
− | #coding=UTF-8
| + | |
− | s = input("Mondj egy számot:")
| + | |
− | print "Ennél eggyel kisebbet mondtál: ", str(s+1)
| + | |
− | </python>
| + | |
− | * Mentsd el, és adj rá futtatási jogot csak magadnak!
| + | |
− | * Futtasd így: ''./kerdez.py''
| + | |
− | | + | |
− | === Számkitatálós játék ===
| + | |
− | | + | |
− | Írj egy python scriptet, amivel számkitalálósat lehet játszani.
| + | |
− | A script "gondoljon" egy számra 1 és 10 között (a szám generálásához használd a "random" modult, lásd lentebb), és a felhasználó által beírt tippeknek megfelelően ("kisebbet / nagyobbat mondjon") segít kitalálni a számot, de ha 4. kör után sem találta ki a játékos, akkor kiírja hogy "Veszettél", és véget ér a futás. Ha a játékos nyert, vagyis eltalálta a számot akkor azt is írjuk ki hogy hányadik körben sikerült kitalálnia, és szintén érjen véget a futás.
| + | |
− | | + | |
− | ==== Segítség a véletlen számok generálásához ====
| + | |
− | | + | |
− | A véletlen számok generálásához a "random" nevű python modult fogjuk használni.á
| + | |
− | Egy python modult az ''import'' kulcsszóval importálhatsz, ezután használhatod majd az importált modul függvényeit. Általában a script elejére (de a script-futtató parancs és kódolás megadása után) írjuk az ''import'' utasításokat. Tehát a scripted így fog kezdődni:
| + | |
− | <python>
| + | |
− | #!/usr/bin/python
| + | |
− | #coding=UTF-8
| + | |
− | | + | |
− | import random
| + | |
− | | + | |
− | </python>
| + | |
− | A random modulból [http://docs.python.org/library/random.html] pedig most csak arra a függvényre lesz szükségünk, ami egész számokat tud sorsolni egy megadott intervallumból. A mi esetünkben 1 és 10 közötti számot akarunk, tehát a kód:
| + | |
− | <python>
| + | |
− | szam = random.randint(1, 10)
| + | |
− | </python>
| + | |
− | A kódrészletben látszik, hogy egy - már importált - modul egy függvényére úgy hivatkozhatunk, hogy megadjuk a modul nevét, majd egy pontot írunk, és utána a függvényt. (A negyedik gyakorlaton a gráfok létrehozásánál is láttunk már ilyet, csak ott nem kellett importálni mert a Sage már induláskor importál egy csomó modult.)
| + | |
− | | + | |
− | === File kezelés Pythonban ===
| + | |
− | | + | |
− | * Írj egy python scriptet "sorszamozo.py" néven, ami beolvas egy fájlt és kiírja annak a sorait 1-től kezdve sorszámozva egy másik fájlba!
| + | |
− | | + | |
− | ==== Segítség a file íráshoz és olvasáshoz ====
| + | |
− | Ahhoz hogy fájlokhoz hozzáférhessünk a python kódon belül, először meg kell nyitni a fájlt. Háromféleképpen lehet megnyitni egy fájlt:
| + | |
− | * olvasásra ('r')
| + | |
− | * írásra ('w') (ha volt ilyen fájl akkor felülírja a tartalmát, vagyis törli ami eddig volt benne!)
| + | |
− | * hozzáfűzésre ('a') (ekkor a fájl végére lehet csak írni)
| + | |
− | | + | |
− | Például, ha az "elso.txt"-t szeretném olvasni, akkor így nyitom meg:
| + | |
− | <python>
| + | |
− | f = open('elso.txt', 'r')
| + | |
− | </python>
| + | |
− | Innentől kezdve az ''f'' nevű fájl-objektumot használhatjuk a soronkénti beolvasásra. Itt például a fájl első sorát beolvassuk egy "line" nevű változóba, ami egy string lesz:
| + | |
− | <python>
| + | |
− | line = f.readline()
| + | |
− | </python>
| + | |
− | Többször egymás után meghívva az ''f''-nek a ''readline()'' függvényét, az mindig a következő sort fogja visszaadni.
| + | |
− | | + | |
− | A ''for'' ciklust is használhatjuk arra hogy soronként végigolvassunk egy fájlt:
| + | |
− | <python>
| + | |
− | for line in f:
| + | |
− | print line
| + | |
− | </python>
| + | |
− | | + | |
− | A fájlba írás pedig így néz ki (persze itt is meg kell előtte nyitni a fájlt, figyeljünk a "w" paraméterre):
| + | |
− | | + | |
− | <python>
| + | |
− | f_out = open('kimenet.txt', 'w')
| + | |
− | f_out.write('Egy egy sor\n') # a "\n" jelenti az újsor karaktert
| + | |
− | </python>
| + | |
− | | + | |
− | Fáljok olvasásakor és írásakor a python kódban néhány karaktert speciális módon kell beírni. Pl a tab karakter jele "\t", és az új sor jele (ami általában az enter billentyű leütésekor kerül a szövegbe) pedig "\n".
| + | |
− | | + | |
− | | + | |
− | (Több infó itt a 7.2-es résznél: http://docs.python.org/tutorial/inputoutput.html)
| + | |