2016/12/13 11:37
1/17
< Python
Python nyelv Szerző: Sallai András Copyright © Sallai András, 2011, 2014, 2015 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu
Helló Világ elso.py # coding: utf8 print "Helló Világ!"
Karakterkódolás Latin2 beállítása: # coding: iso-8859-2 UTF-8 beállítása: # coding: utf8 Az állomány elején kettős-kereszttel bevezetve adjuk meg. Hagyományosan használjuk a „-*-” karaktereket is: # -*- coding: <encoding name> -*-
Interpreter Unix alapú rendszereken a legelső sorban megadhatjuk a python fordító útvonalát: #!/usr/bin/python # -*- coding: utf-8 -*print("ok") Így különböző python verziók használhatók. A hármas verziót például: SzitWiki - http://szit.hu/
Python nyelv
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
#!/usr/bin/python3 # -*- coding: utf-8 -*print("ok") Olvashatjuk a környezetből is: #!/usr/bin/env python # -*- coding: utf-8 -*print("ok")
Megjegyzés Egy soros megjegyzéseket tehetünk a kódba a „#” jel segítségével. # Megjegyzés A megjegyzések állhatnak utasítás után is print("ok") # Megjegyzés if "joska" in nevek: # Megvizsgáljuk benne van-e print("benne van")
Kivitel A print utasítás Szöveget írathatunk ki idézőjelek és felső vesszők között is: print "Alma" print 'Alma' A Python 3.x verziótól, csak zárójellel használhatjuk a print() utasítást: print("Alma") A print után vesszővel tagolva több paraméter is megadható: a = 3 print "Szám: ", a
http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
3/17
Python nyelv
sys program01.py #!/usr/bin/python import sys sys.stdout.write("Valami\n")
Azokat a változókat amelyek szám értékeket tartalmaznak, át kell konvertálni szöveggé: program01.py #!/usr/bin/python3 import sys szam = 35 sys.stdout.write(str(szam))
Összevonás más karaktersorozattal: program01.py #!/usr/bin/python3 import sys szam = 35 sys.stdout.write(str(szam) + " kg")
Escape szekvenciák Ha kiíratunk egy a karaktert, akkor a megjelenik a képernyőn. Egyes karaktereket a szokásostól eltérően is értelmezhetünk. Megjelenés helyett valamilyen változást idézhetnek elő. Ha egy karakternek ilyen speciális jelentést szeretnénk adni, azt az elé tett vissza-per jellel jelezzük, és a továbbiakban escape szekvenciának nevezzük. A következő táblázat bemutatja, milyen escape szekvenciák vannak és azokat mire használjuk. Escape szekvencia Jelentés \\ vissza-perjel megjelenítése \' aposztróf megjelenítése \" idézőjel megjelenítése \a ASCII csengőhang \b ASCII visszatörlés - Backspace (BS) \f ASCII lapdobás (FF) SzitWiki - http://szit.hu/
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
\n \r \t \v \ooo \xhh
ASCII soremelés (LF) ASCII kocsi vissza (CR) ASCII vízszintes tabulátor (TAB) ASCII függőleges tabulátor (VT) oktális érték hexadecimális érték
Visszatörlés használata: print("alma\bkörte") A fenti utasítás kitörli az alma szó utolsó „a” betűjét. Soremelés használata: print("alma\nkörte") Tabulátor használata: print("alma\tkörte") ASCII hexadecimális kód alapján kiíratás: print("\45")
Változóhasználat A változókat használatuk előtt nem kell deklarálni. Egyszerűen csak használni kell. # coding: iso-8859-2 szam = 3 print "Teszt" , szam # coding: iso-8859-2 szam1 = 3 szam2 = 5 osszeg = szam1 + szam2 print "Összeg: " , osszeg # coding: iso-8859-2 szoveg1 = "Szeretem" szoveg2 = " az almát" kiirando = szoveg1 + szoveg2 print "Következtetés: " , kiirando A változók típusa attól függ milyen értéket adunk át számára. Ha egész típust adunk át akkor int lesz. Ha valós típust, akkor float. Ha szöveget akkor str. http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
5/17
Python nyelv
Ha szeretnénk tudni milyen típusú a változónk, akkor a type függvényt használhatjuk: print type(szam1) Az eredmény: Vagy: print type(szoveg1) Az eredmény:
Formázott kivitel Egész szám kiíratása 10 helyen # coding: utf-8 szam = 3 print "Szám: %10d" % szam Ha formázott kivitelt használunk, akkor a formátum karaktersorozat után a szeparátor % jel karakter, a vessző helyett. Valós szám, két tizedesjegy pontossággal, tíz helyen ábrázolva. # coding: utf-8 szam = 3.12345678 print "Szám: %10.2f" % szam Szöveg kiíratása # coding: utf-8 nev = "körte" print "Név: %s" % nev
Matematikai modul A matematikai modul használatához, importálnunk kell a math modult. A „*” karakterrel az math modul összes függvényét importáljuk, de megadhatunk egy vagy több függvényt is vesszővel elválasztva. Gyökvonás és importálás: SzitWiki - http://szit.hu/
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
import math print math.sqrt(9) Így importálva, mindig elé kell írni a math objektumnevet. Az sqrt statikusan importálva: from math import sqrt print sqrt(9) Vegyük észre hogy fentebb csak az sqrt függvényt importáltuk a math modulból. A következőkben a sqrt() és a sin() függvényt is importáljuk: from math import sqrt,sin print sqrt(9) print sin(1 * pi / 180) Az összes függvény importálása: from math import * print sqrt(9) print sin(1 * pi / 180)
Véletlen szám Véletlen szám generálása a randrange függvénnyel lehetséges.
Randrange A randrange használatához importálnunk kell a random csomagot: import random Szintaxis: random.randrange([start], stop[, step]) Példák: 0-tól – 5-ig számok: print random.randrange(6) Megadható alsó határ is. 10-től – 14-ig számok:
http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
7/17
Python nyelv
print random.randrange(10, 15) iterálva: veletlenek.py #!/usr/bin/env python # -*- coding: utf-8 -*import random for szam in range(20): print random.randrange(3)
A randrange elfogad egy harmadik paramétert is. A random.randrange(3,13,3) a 3, 6, 9, 12 sorozat elemek valamelyikét adja vissza.
Randint random.randint(a, b) Visszatér egy egész N számmal, amely a <= N <= b. A randrange(a,b+1) formával azonos. Példa: dobokocka.py # coding: utf-8 import random # 1-től -- 6--ig szám előállítása: print random.randint(1,6)
Megjegyzés: Ne adjuk a futtatható állomány nevének a random szót, mert akkor ebből a fájlból akarja importálni a random objektumot.
choice seq="abcd" random.choice(seq) print random.choice("abcd") A sorozatból választ egy elemet. A fenti példában tehát „a”,„b”,„c” vagy „d”-t ad majd vissza. SzitWiki - http://szit.hu/
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
http://docs.python.org/py3k/library/random.html#random.choice
random random.random() Egy 12 darab tizedesjegyből álló lebegőpontos számot generál. Például: 0.00727745707987
Operátorok Aritmetikai operátorok + összeadás - kivonás * szorzás / osztás % maradékképzés ** hatványozás
Három a második hatványon: 3**2
Logikai operátorok and or not
és vagy tagadás
Zárójelek használatával egy lehetséges példa: (A and (not B)) or C
Relációs operátorok > < >= <= == !=
http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
Konvertálás Sztring valóssá a = "123.12345" float(a)
Sztring egésszé a = "123.12345" int(float(a))
Bevitel program01.py #!/usr/bin/python3.4 # coding: utf-8 szam = input("Szám: ") print szam * 2
Szöveg bekérése: szoveg = raw_input("Szöveg: ") Egész szám bekérése: eszam = int(raw_input("Egész szám: ") Valós szám bekérése: vszam = float(raw_input("Valós szám: ") Két szám bekérése, összeadása: # coding: iso-8859-2 szam1 = int(raw_input('Szam1: ')) szam2 = int(raw_input('Szam2: ')) eredmeny = szam1 + szam2 print eredmeny
SzitWiki - http://szit.hu/
9/17
Python nyelv
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
Szekvencia tevékenység1 tevékenység2 A Python nyelvben fontos, hogy az utasításokat nem írhatjuk behúzással indoklás nélkül. Behúzással akkor írhatjuk, hogy az utasítás egy szelekciós, iterációs vagy más blokk részét képezi.
Szelekció Általánosan if feltétel: tevékenység Két ágú szelekció általánosan: if feltétel: tevékenység else: tevékenység2 Több ágú szelekció általánosan: if feltétel: tevékenység elif feltétel2: tevékenység2 else: tevékenység3
Példák a = 3 if a > 0: print "Pozitív" elif a < 0: print "Negatív" else print "Nulla" Több utasítás a szelekcióban Azt szeretnénk, ha az „a” változó kisebb mint nulla akkor írja ki egy utasítás, hogy „Negatív szám”, majd egy másik utasítás: „Nem jó nekünk”. A szelekció ezzel véget ér, egy olyan utasítás jön ami már http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
11/17
Python nyelv
nem tartozik a szelekcióhoz, amely azt írja ki: „Folytatás…”. Ez utóbb utasítás tehát mindenképpen végre kell hajtódjon. if a < 0: print "Negatív szám" print "Nem jó nekünk" print "Folytatás..." Vegyük észre, hogy nincs blokk nyitó és blokk záró. Hogy a blokk még tart, jelzi a folyamatos beljebb kezdés. Ha a blokkot véget ért, akkor az if utasítással egy vonalban folytatjuk a következőt. A könnyebb érthetőség kedvéért hasonlítsuk össze a következő két programot: a = 5 if a < 0: print "Negatív szám" print "Nem jó nekünk" print "Folytatás..." a = 5 if a < 0: print "Negatív szám" print "Nem jó nekünk" print "Folytatás..." Futtassuk le, és nézzük meg mi a kettő különbsége.
Relációs operátorok használata a szelekcióban a = 9 if (a % 2 == 0): print "páros" else: print "páratlan"
Iteráció while i = 0 while i < 10: i = i + 1 print i, " Valami" print "Vege"
SzitWiki - http://szit.hu/
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
for lista = ['macska', 'ablak', 'utca'] for b in lista: print b for n in range(1, 40): print "Helló Világ"
Intervallum # [0,1,2,3,4,5,6,7,8,9] listát hozzuk létre lista = range(10) for szam in lista: print szam Előállíthatunk 5 és 12 közötti számokat: range(5,13) [5, 6, 7, 8, 9, 10, 11, 12] 3-tól – 15-ig, hármasával: range(3,16,3) [3, 6, 9, 12, 15]
Lista bejárása bejar.py # coding: utf-8 # Készítünk egy listát: nevsor = ['Jóska','Kati','Mari','János','Gábor'] # Bejárjuk: for index in range(len(nevsor)): print index, nevsor[index]
Iterációk A számokat kiíratjuk 0-tól – 9-ig http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
13/17
Python nyelv
# coding: utf-8 for i in range(10): print i
Szövegkezelés Konkatenálás szoveg3 = szoveg1 + szoveg2 Ha bekérjük a szöveget, ne felejtsük el, hogy a szöveg végére egy „kocsi vissza” karakter is beíródik. Ezért az el kell távolítani: vnev = raw_input("Vezetéknév: ") knev = raw_input("Keresztnév: ") teljesnev = vnev.rstrip() + knev.rstrip() De létezik lstrip() és strip() metódus is Szöveg hossza: szoveg = "körte" print len(szoveg) Eredmény: 5
Darabolás tomb = szoveg.split() Megadhatjuk a szeparátort: szoveg = "egy:ketto:harom" tomb = szoveg.split(':')
Benne van-e? sor = "vi farkas más" if "farkas" in sor: print("ok")
SzitWiki - http://szit.hu/
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
Tömbök Vektor # coding: iso-8859-2 tomb = [] tomb.append(9) tomb.append(4) print "Első elem: ", tomb[0] print "Második elem: ", tomb[1] # coding: iso-8859-2 tomb = [3,5,6,7] print "Első elem: ", tomb[0] print "Második elem: ", tomb[1]
Mátrix # coding: iso-8859-2 tomb = [[1,1,1],[1,1,1],[1,1,1]] print tomb[0][0]
Méret tomb = [ 3, 4, 9] meret = len(tomb)
Időpont lekérdezése #coding: utf-8 import time pillanatok = time.time() print "Eltelt pillanatok 1970 január 1 12:00 óra óta: ", pillanatok helyiido = time.localtime(time.time()) print "Helyi idő: ", helyiido
http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
15/17
# Helyi idő formázva: helyiido = time.asctime(time.localtime(time.time())) print "Helyi idő: ", helyiido input()
Függvény Függvényt a def szóval hozhatunk létre # coding: utf-8 def Osszead(szam1, szam2): eredmeny = szam1 + szam2 return eredmeny print Osszead(3, 2)
Fájlkezelés Szekvenciális fájlkezelés Hozzáfűzés # coding: utf-8 f = open('adat.txt', 'a') f.write('Üdv\n') f.close() Olvasás # coding: utf-8 f = open('adat.txt', 'r') sor = f.read() print sor f.close() 5 karakter beolvasása: s = f.read(5)
SzitWiki - http://szit.hu/
Python nyelv
Last update: oktatas:programozás:python:python_nyelv http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv 2015/06/02 08:22
Szövegfájlok kezelése Írás fájlba
olvas.py # coding: utf-8 f = open('adat2.txt', 'w') f.write("Első") f.write("Második") f.close()
Olvasás fájlból
olvas.py # coding: utf-8 f = open('adat.txt', 'r') while 1: sor = f.readline() if sor == '': break print sor.rstrip() f.close()
Olvasás újabb verzió
olvas.py #!/usr/bin/env python # -*- coding: utf-8 -*with open("adat.txt") as f: for sor in f: print(sor)
http://szit.hu/
Printed on 2016/12/13 11:37
2016/12/13 11:37
17/17
Külső könyvtárak használata sys.path.append('/ahol/a/libek/vannak/')
From: http://szit.hu/ - SzitWiki Permanent link: http://szit.hu/doku.php?id=oktatas:programoz%C3%A1s:python:python_nyelv Last update: 2015/06/02 08:22
SzitWiki - http://szit.hu/
Python nyelv