Python tanfolyam
Python bevezető I. rész
Python bevezető – I. rész
Mai tematika ●
Amiről szó lesz (most): –
Interpretált vs. fordított nyelvek, GC
–
Szintakszis
–
Alaptípusok
–
Control flow: szekvencia, szelekció, iteráció...
–
Függvények
–
Modulok használata
–
Fájlkezelés Python bevezető – I. rész
Python ●
A Python –
Interpretált nyelv
–
Egyszerűen használható, mégis valódi programnyelv
–
Tömör és kifejező
–
Könnyen kiterjeszthető
Python bevezető – I. rész
Fordított nyelvek - ismétlés
Forrás: http://www3.ntu.edu.sg/home/ehchua/programming/cpp/images/GCC_CompilationProc ess.png
Python bevezető – I. rész
Interpretált nyelvek ●
Nincs szükség fordításra → gyorsabb fejl.
●
A programot az ún. Interpreter futtatja
●
Lassabbak mint a fordított nyelvek
●
Sorról-sorra fordít
Python bevezető – I. rész
Python interpreter ●
●
Köztes nyelvre fordítás →bytecode →bytecode interpreter Kód megváltoztatása után első futtatáskor újra fordít
●
*.py → *.pyc
●
Python és python3 –
CLI demo ● ●
Interpreter indítása interaktív módban Parancsok átadása Python bevezető – I. rész
Szintaktika ●
●
Blokkok helyett indentálás –
4 szóköz / 1 tab
–
Nem lehet keverni!
–
Kettőspont!!!
–
Demo: module1.py
Kommentek: –
# a sor elején
Python bevezető – I. rész
Egyszerű adattípusok ●
Mind immutable
●
Int & float
●
–
//, **
–
Interaktív módban utolsó eredmény változója: _
–
int(), float()
Boolean –
True / False
Python bevezető – I. rész
Összetett adattípusok ●
String
●
List: [,]
●
Tuple: (,)
●
Dictionary: { “key1” : “value1”,}
●
Egy részük immutable, vagy van immutable párjuk
Python bevezető – I. rész
String – – – – – – –
Immutable str() ', '', '''''' használata Escape-elés, raw string Többsoros (“a” ”b” ”c”) s[:i] + s[i:] = s Beolvasás: input(“string to print”)
Python bevezető – I. rész
String 2 ●
Konkatenálás: +
●
Ismétlés: *
●
Demo: "ba" + 2 * "la" + "jka"
●
len(), split(), strip(), join()
●
Subscription: –
Demo: string_subscription.py
–
Hogyan kell visszafelé, minden második karaktert kiírni? Python bevezető – I. rész
List ●
Jele: []
●
Mutable
●
append() metódus
●
Demo: lista létrehozás, indexelés, slicing
Python bevezető – I. rész
Tuple ●
Jele: ()
●
Immutable
●
Demo: tuple létrehozás, indexelés, slicing
Python bevezető – I. rész
Dictionary ●
Jele: d = {“key” : ”value” }
●
Értékadás: –
d[“key”] = “other value”
●
Mutable
●
Map-nek is hívják
●
keys()
●
Demo: dictionary létrehozás, indexelés, slicing Python bevezető – I. rész
Ciklusok - for ●
range(): “visszaad egy objektumot, amin lehet iterálni”
●
range(stop)
●
range(10): 0-tól 9-ig az összes egész
●
Demo –
sum1.py
–
sum2.py
–
range.py Python bevezető – I. rész
Ciklusok - while ●
Amíg a feltétel igaz
●
Demo: fibonacci.py
●
Forrás: http://docs.python.org/3/tutorial/introduction.html
Python bevezető – I. rész
Elágazások ●
Új blokkot nyitnak → indentálni kell (célszerű)
●
If, elif, else
●
Használhatjuk a feltétel igazság tartalmát (nem kell mindig == True, …)
●
in operator: if “a” in (1, 2, “b”, “a”): pass
●
Demo: elagazas.py
Python bevezető – I. rész
List comprehension ●
Általános dolog –
Egy lista egy másik lista egy kicsit “átgyúrva”
–
Egy lista egy másik lista elemeinek részhalmaza
●
LC: tegyük ezt a műveletet könyebbé
●
Szerkezet: –
●
[f(i) for … if ...]
Példa: írjuk ki kettő első 11 egész hatványát print([2**i for i in range(11)]) Python bevezető – I. rész
List comprehension 2 ● ●
●
Alkalmazzunk egy függvényt minden elemre Egy lista minden elemén hívjunk meg egy metódust Gyűjtsük ki egy lista adott tulajdonságokkal rendelkező elemeit
Python bevezető – I. rész
Feladatok ●
Számok négyzete 1-10-ig
●
Páros számok négyzete 1-10-ig
●
Adott M, egy n*n-es mátrix (és n). Transzponáld M-et.
●
●
●
Minden fenti feladatot egy sorban is meg lehet oldani, list comprehensionnel. Írd ki 2014 és 3014 között az összes olyan számot, ami osztható 5-el, de 7-el nem. Írf fv-t, ami a bementeként kapott számnak kiszámolja a faktoriálisát.
●
Python bevezető – I. rész
Függvények ●
Ezek is objektumok
●
A paramétereik kaphatnak default értéket
●
A default értékű argumentumok csak egyszer értékelődnek ki
●
Keyword argumentumok –
Ha explicit megmondjuk minek adunk értéket, a paraméterek sorrendje sem számít
–
*, ** paraméterek
●
Packing, unpacking
●
Demo: function.py
Python bevezető – I. rész
Lambda függvények ●
Névtelen, egy utasításos függvények
●
Használjuk:
●
–
Egyszer használatos, rövid függvények
–
Más függvények paramétereként átadhatók (pl. egy lista minden elemére alkalmazzuk a lambda fv-t)
Demo: lambda.py
Python bevezető – I. rész
Modulok ●
●
●
Python definíciókat tartalmazhat (pl. függvények, osztályok, globális változók) A modulokat az import szóval lehet importálni, ekkor a modulban lévő definíciók a modulnev.definicio alakban érhetők el (lásd math.sqrt() fv.) Az egyes definíciók közvetlenül is importálhatók: from math import sqrt sqrt(2)
●
●
A modul neve a modulon belül megtudható a __name__ globális változóból Néhány standard modul: os, sys, re Python bevezető – I. rész
Modulok 2 ●
A modulok futtathatók is: –
Demo: module1.py
–
python3 module1.py
Python bevezető – I. rész
Fájlműveletek ●
Fájl megnyitása: f = open(“fajlnev”, mod) – –
●
mod := “r” vagy “w” A fájlnév lehet relatív vagy abszolút
Használat után le kell zárni: –
f.close()
–
with statement
–
Demo: fileops.py
Python bevezető – I. rész
Fájlműveletek 2 ●
Egyéb fontos műveletek: –
read()
–
readline(), readlines()
–
write(str), writelines(sequence)
Python bevezető – I. rész