Kihagyás

Ismerkedés

A Pythonról általánosságban

Tulajdonságok

  • Könnyen olvasható
  • Ideális mindenféle platformra/célra
    • parancssori, asztali alkalmazásokhoz
    • webes alkalmazásokhoz
    • beágyazott rendszerekre írt alkalmazásokhoz (pl.: Raspberry PI)
  • A TIOBE indexen kétszer választották meg az év nyelvének
    • 2020-ban a 3. legnépszerűbb nyelv (2019-ben 3. volt, 2018-ban pedig a 4.)
    • jelenlegi helyezéséit itt lehet megnézni
  • Gyorsan tanulható, kezdők is könnyen készíthetnek látványos alkalmazásokat
  • Néhány tízsoros alkalmazásokhoz is kiváló választás
  • Ugyanakkor hatalmas, robosztus rendszerekhez is megfelelő döntés lehet

  • Nyílt forrású, bárki fejlesztheti, használhatja akár üzleti célokra is

  • Operációs rendszer független
  • Rövid, tömör kód írható, szintaxisa egyszerű
  • Javaból ismerős szemétgyűjtés, nem a programozó feladata a memória kezelése
  • Referencia alapú
  • Interpretált, interaktív, objektum-orientált, de támogatja a funkcionális programozást is
  • Támogatja a modularitást
  • Ideális kezdőknek, általános iskolásoknak akár
  • Fontos az indent

Miért pont Python?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def fagyizas(kedvenc_iz, fagyi_izek):
    if kedvenc_iz in fagyi_izek:
        print('A kedvenc fagyim kaphato ebben a fagyizoban, ide menjunk!')
    elif 'citrom' in fagyi_izek:
        print('Sajnos a kedvencembol nincs, de van citrom. Menjunk ide...')
    else:
        print('Itt nincs olyan fagyi, amilyet ennek. Ne menjunk ide!')

# Elso fagyizo kinalat
elso_fagyizo = ['csoki', 'eper', 'vanilia', 'citrom']

# Masodik fagyizo kinalat
masodik_fagyizo = ['energiaital', 'sor', 'alma', 'ragogumi', 'pezsgo']

# Harmadik fagyizo kinalat
harmadik_fagyizo = ['citrom', 'eper', 'alma', 'sztracsatella']

kedvenc_iz = input('Melyik fagyi a kedvenced?\n')

print('Elso fagyizo')
fagyizas(kedvenc_iz, elso_fagyizo)

print('Masodik fagyizo')
fagyizas(kedvenc_iz, masodik_fagyizo)

print('Harmadik fagyizo')
fagyizas(kedvenc_iz, harmadik_fagyizo)

Kik használják?

  • Facebook
    • infrastruktúra menedzsment, automatizálás
  • Google
    • az egyik hivatalos szerveroldali nyelv
  • Instagram
    • egy webes Python keretrendszerben (Django) lett megírva
    • Egy érdekes videó az Instagram Python 3-ra való átállásáról, itt pedig a hozzá tartozó cikk.
  • Battlefield 2 és 2142
    • játéklogika és szerveroldal, modok programozási nyelve
  • Dropbox
    • asztali alkalmazás
  • Spotify, Netflix
    • data analysis, háttér service-ek
  • Frets On Fire
  • Reddit

Története

  • 1989 - Guido van Rossum kezdte el fejleszteni
    • ABC nyelv fejlesztője, ott szerzett tapasztalatokat használta fel
    • hobbi projektként, hogy elüsse valamivel a karácsonyi szünetét
    • régóta gondolkozott egy nyelven, amit olyan könnyű értelmezni, mint egy egyszerű szöveget
  • 1994 - Megjelenik a nyelv első hivatalos kiadása, Python 1
    • Újdonságok: adatszerkezetek (list, dictionary, str), osztályok, kivételkezelés, modulrendszer, funkcionális programozás eszközei, komplex számok
    • Támogatás: már nem támogatott
    • Uolsó kiadás: Python 1.6.1 (2000.09.)
  • 2000 - Megjelenik a Python 2.0

    • Újdonságok: list comprehension (listaképzés), fejlett szemétgyűjtő (garbage collector), egységesített objektummodell, generátorok, context managerek, unicode támogatás
    • Támogatás: 2020 végéig biztosan támogatott
    • Utolsó kiadás: Python 2.7.15 (2018.05.)
  • 2008 - Megjelenik a Python 3.0

    • nem kompatibilis az előző Python verziókkal!
    • Újdonságok: egészosztás átalakítása, rengeteg elavult, csak a kompatibilitás miatt megtartott lehetőség eldobása (szöveges kivételek, elavult osztályszintaxis), a utasítás helyett függvény lett
    • Támogatás: támogatott
    • Utolsó kiadás: Python 3.7.0 - 2018.06.
  • 2018 - Guido van Rossum visszavonul a nyelv "vezetésétől"
  • Python 4?
  • Fun fact: Monty Python repülő cirkusza után Python munkanéven kezdte meg a nyelv fejlesztését van Rossum

Python 2 vagy 3?

  • Két fő fejlesztési ág: Python 2.7 és 3.X
  • Új projektek esetében mindenképpen Python 3-mat válasszunk
  • Meglévő projekteknél lehetőség szerint támogatni mind a két nyelvi változatot
    • Korábban azt javasolták, hogy két különböző mappában legyen a két kódbázis
    • Manapság kompatibilitást megoldó függvénykönyvtárak: , , stb.
  • Egy kezdő programozónak érdemes a Python 3-mat tanulnia
  • Az előadáson és a gyakorlaton is ezt a Python verziót fogjuk használni

TODO: összehasonlító táblázat py2 py3

Szükséges eszközök

Python interpreter

A jegyzetben található (valamint az órai) kódok futtatásához szükségünk lesz egy parancssori Python 3 értelmezőre. A legnépszerűbb a CPython (hivatalos, C nyelven írt interpreter). Nagy népszerűségnek örvend az Anaconda programcsomag is, ami az interpreteren kívül számos, adatelemzéshez jól használható függvénykönyvtárat is tartalmaz. Ezeken kívül számos változat létezik még: Pypy (Pythonban írt Python értelmező), Jython (Javaban írt értelmező), IronPython (.NET-ben írt értelmező), és még számos egyéb nyelven készült értelmező is létezik, ezekről bővebb listát ezen a linken találhatunk.

CPython telepítése

1
sudo apt-get update && sudo apt-get install python3.7`
  • Telepítés után szükség esetén a PATH környezeti változó beállítása
  • Ellenőrizzük a parancssorban:
1
2
$ python –version
Python 3.7.0

Ha nem ezt látjuk, esetleg más a verzió, akkor nem sikerült a telepítés.

Fejlesztőkörnyezet

A kódok írásához tetszőleges fejlesztőkörnyezetet választhatunk, az egyszerű szövegszerkesztőtől kezdve a teljes IDE megoldásokig számos lehetőségünk van.

  • Egyszerű szövegszerkesztő: Notepad, Notepad++, Sublime Text, Vim, stb.
  • Integrált fejlesztői környezetek (IDE): PyCharm, Visual Studio Code, NetBeans, XCode, KDevelop, Spyder, stb.

Természetesen ezeken kívül is rengeteg szerkesztőből válogathatunk, egy bővebb listát ezekről itt találunk.

Sublime Text Editor

  • Egyszerűbb szerkesztő, de sok mindent támogat, rengeteg beépülő modul tölthető le hozzá
  • Ingyen is használható egy ideig, aztán megvásárolható
    • Sajnos itt egyetemi polgárként sem kapunk kedvezményt
  • Hozzákapcsolható a Python interpreter, így gyorsan kaphatunk egy egyszerű de nagyszerű fejlesztőkörnyezetet
  • Letölthető a https://www.sublimetext.com oldalról
  • A letöltött programban nincsen Python interpreter, azt külön kell telepíteni!

PyCharm

  • IntelliJ alapú (ugyanaz az alapja, mint az IntelliJ IDEA-nak, vagy a WebStormnak)
  • Van ingyenes és van professzionális változata is
  • A letöltött IDE-ben nincsen Python interpreter, azt külön kell telepíteni! (célszerű a PyCharm előtt)
  • Aki Programozás I-en használta az IDEÁt, annak ez kiváló döntés lehet.

Parancssori Python értelmező

  • Interaktív módon használhatjuk az interpretert
  • A parancs kiadásával indíthatjuk el az értelmezőt
  • Bezárni az EOF karakter segítségével lehet
    • Windows: Ctrl + Z
    • Unix: Ctrl + D
    • Ha valamiért mégsem működne, a quit(), vagy exit(0) parancs beírásával is bezárható az értelmező
  • A beírt parancsokat folyamatosan értelmezi, amíg ki nem lépünk az alkalmazásból

Hello World

1
print('Hello world!')

A print parancs segítségével az alapértelmezett kimenetre (stdout) írhatunk. Próbáljuk ki: lépjünk be a parancssori Python értelmezőbe (python paranccsal), majd gépeljük be.

1
print('Hello World')

Kimenet

Hello World

A Python nyelvben használhatjuk a ' és " karaktereket is a szövegek jelölésére

1
print("Hello World")

Kimenet

Hello World

  • Szöveget összefűzhetünk a + karakterrel
1
print('Hello' + 'World' + "!")

Kimenet

Hello World!

Python fájlok futtatása

  • Helyezzük a programunkat a fájlba, mentsük el.
  • Ezt követően bármikor futtathatjuk az elkészített programunkat a paranccsal.
  • Sokkal kényelmesebb így, mint mindig beírni a teljes programot, amit szeretnénk futtatni.
  • Parancssori paramétereket is adhatunk át:
    • Azonban ennek feldolgozásáról később lesz szó.

Utolsó frissítés: 2020-09-09 19:13:16