1 A Python programozási nyelv Takács Gábor Széchenyi István Egyetem Matematika és Számítástudomány Tanszék 1 / 472 Jellemzők + értelmezett nyelv + típ...
Széchenyi István Egyetem Matematika és Számítástudomány Tanszék
1 / 47
Jellemzők + értelmezett nyelv + típusai dinamikusak + szintaxisa tömör, elegáns + többparadigmás nyelv + könnyen tanulható ("brain-friendly") + több 10 ezer külső modul érhető el hozzá (https://pypi.python.org/pypi) + erős közösség áll mögötte + szabadon használható + platformfüggetlen – bizonyos feladatokhoz lassú lehet – többszálú lehetőségei korlátozottak 2 / 47
Youtube „Python has been an important part of Google since the beginning, and remains so as the system grows and evolve” (Peter Norvig, Google)
I
Dropbox „Python became my favorite programming language because it had a balance of simplicity, flexibility, and elegance.” (Drew Houston, CEO, Dropbox)
7 / 47
Implementációk
I
CPython (http://python.org/), v3.4.2 / v2.7.9
I
PyPy (http://pypy.org/), v3.2.5 / v2.7.8
I
Jython (http://www.jython.org/), v2.7b3
I
IronPython (http://ironpython.net/), v2.7.5
I
...
8 / 47
Telepítés
I
Linux - értelmező telepítése: triviális - külső modulok telepítése: pip-pel
None True, False számok i = 10 # egész szám (int) f = 3.14 # lebegőpontos szám (float) c = 2 - 5j # komplex szám (complex)
I
sztringek s1 = 'alma' # a határoló jel lehet ' s2 = "szilva" # ...és " is s3 = '"alma" "szilva"' # <= ilyenkor nem kell levédeni # a sztringben a " karaktert! # többsoros sztringállandó s4 = """alma szilva""" 13 / 47
Adattípusok / 2
I
Aritmetikai műveletek: +, -, *, /, **, %, //.
I
Összehasonlítás: <, <=, ==, !=, >, >=.
I
Logikai műveletek: and, or, not.
I
Bitenkénti logikai műveletek: &, |, ˆ, ˜, «, ».
I
Halmazműveletek: &, |, -.
I
Tartalmazásvizsgálat: in, not in.
I
Azonosságvizsgálat: is, is not.
I
Értékadás: =, +=, -=, *=, /=, **=, %=, //=, ...
14 / 47
Adattípusok / 3 I
szekvencia típusok t = (1, 2, 3) # tuple l = [1, 2, 3] # lista
I
halmazok, szótárak s = set([1, 2, 3]) # halmaz (Python 2) s = {1, 2, 3} # halmaz (Python 3) d = {'x': 1, 'y': 2, 'z': 3} # szótár d['x'] # az 'x' kulcshoz rendelt érték lekérdezése d['x'] = 9 # az 'x' kulcshoz érték módosítása d['w'] = 0 # új kulcs-érték pár hozzáadása 1 in s # eleme 1 az s halmaznak? 'x' in d # van a d szótárban 'x' kulcs? 15 / 47
# Pythonban a vezérlési szerezetek # belseje indentálással különül el. # a kód többi részétől. # Emiatt garantált, hogy a program # vizuális megjelenése és logikai # jelentése összhangban van.
# végtelen ciklus while True: pass # Ha csak 1 végrehajtandó utasítás van, # akkor írhatjuk a while-lal 1 sorba. # a 0-tól 9-ig terjedő egész számok négyzetének kiírása for i in range(10): print(i**2) I I
range vs. xrange break, continue 17 / 47
Szabványos be- és kimenet # Python 2 print 'hello' sys.stdout.write('hello') sys.stdout.write('hello'); sys.stdout.flush() # Python 3 print('hello') print('hello', end='') print('hello', flush=True) # Python 2 x = input('Kérek egy egész számot: ') # VESZÉLYES! x = int(raw_input('Kérek egy egész számot: ')) # Python 3 x = int(input('Kérek egy egész számot: '))
18 / 47
Gyakorlás: Számkitalálós játék > > > > > >
Találd ki, hogy melyik számra gondoltam 1 és 100 között! 50 Kisebb számra gondoltam. 25 Nagyobb számra gondoltam. ...