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 2. legnépszerűbb nyelv (2020-ban 2. volt, 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álás

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?

  • Ma már nincs kérdés, Python 3

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.

Visual Studio Code

  • Egyszerűbb szerkesztő, de sok mindent támogat, rengeteg beépülő modul tölthető le hozzá
  • Teljesen ingyenesen használható
  • Hozzákapcsolható a Python interpreter, így gyorsan kaphatunk egy egyszerű, gyors fejlesztőkörnyezetet
  • Letölthető a https://code.visualstudio.com/ oldalról
  • A letöltött programban nincsen Python interpreter, azt külön kell telepíteni (az előbbiekben leírtak szerint)!

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 keretin belül 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 hello.py fájlba, mentsük el.
  • Ezt követően bármikor futtathatjuk az elkészített programunkat a python hello.py paranccsal.
  • Sokkal kényelmesebb így, mint mindig beírni a teljes programot, amit szeretnénk futtatni.
  • Parancssori paramétereket is adhatunk át: python hello.py arg1 arg2
    • Azonban ennek feldolgozásáról később lesz szó.

Alapvető típusok

  • Numerikus adattípusok
    • int: egész számok, nincs méretkorlát (korábban külön volt int és long típus, de Python 3-ban ez összevonásra került)
    • float: lebegőpontos számtípus, Pythonban a . (pont) karaktert használjuk vessző helyett tizedesvesszőnek (ahogy ezt a legtöbb nyelv esetében megszokhattuk)
    • complex: komplex számok ábrázolására használható típus
  • Szöveges adattípus -str: szöveges adattípus, Pythonban nincs külön karakter-adattípus, ha csak egy karakterből áll egy szöveg, az akkor is szöveg
  • Logikai adattípus
    • bool: logikai adattípus. Értéke csak True vagy False lehet
  • Byte adattípus
  • További típusok: lista (list), szótár (dictionary, dict), elem n-es (tuple), halmaz (set)

Alapvető műveletek

  • Ugyanúgy használhatjuk a már ismert alapvető műveletek: összeadás (+), kivonás (-), osztás (/), szorzás (*)

  • Python 3-ban az osztás az MINDIG lebegőpontos osztást jelent, egészosztáshoz a operátort kell használni (ez viszont mindig egészosztást végez)

1
2
3
4
5
6
7
8
>>> 100/4
25.0
>>> 100//4
25
>>> 100/3
33.333333333333336 
>>> 100//3 
33
  • Hatványozás is használható a operátorral
1
2
>>> 2**3
8
  • A Python beépítve támogatja a komplex számokat és az azokkal történő műveleteket is (komplex szám: valós és képzetes részből áll)

    • Az adott szám után egy karaktert kell írnunk, ha azt szeretnénk, hogy a szám képzetes legyen (a matematikában általában i-vel jelöljük alapvetően)

    ::: pythonCode >>> 1j * 1j (-1+0j) :::

  • a komplex számok segítségével lehet pl. $-1$-ből gyököt vonni.

  • A komplex számokkal ezen a kurzuson nem fogunk foglalkozni, de mindenkit bátorítunk arra, hogy más tantárgyak tanulásához (akár beadandóhoz) használja nyugodtan a Python adta lehetőségeket (pl.: Diszkrét matematika)


Utolsó frissítés: 2021-09-03 15:43:22