Tartalom: Python bevezetés, Python 2 vs Python 3, IDE, egyszeru matematika, változók, szintaxis, és logika, ciklusok I., string I.
A Python egy népszeru, általános célú, magas szintu szkript nyelv, melyet Guido van Rossum holland programozó publikált 1991-ben. A Python keresztplatformos nyelv, futtatókörnyezete több operációs rendszeren (Windows, Linux, OsX, Android) elérheto. A népszeruségéhez nagyban hozzájárul számos kiegészítocsomagja, mint a késobb tárgyalandó numpy, matplotlib, TensorFlow, pyQT, openCV, iPython, stb.
A Pythont tanuláshoz és egyszerubb esetekben használhatjuk interaktívan is, az értelmezovel soronként végrehajttathatjuk az utasításainkat. Persze lehetoségünk van .py
kiterjesztésu fájlokat készíteni és futtatni is, sot lehet generálni futtatható fájlt vagy telepítot. Egyelore viszont maradjunk az alapoknál, ismerkedjünk a szintaktikával és az egyszeru matematikával.
Megjegyzés: az eloadások során a Jupyter notebookot fogjuk használni ez interaktív python notebook (.ipynb
) fájlokat hoz létre, amiben a kódok és kimenetek szerkeszthetoek, illetve GitHub-on a legutolsó futás lesz látható. A gyakorlati .py
kiterjesztésu fájlokhoz a Jupyter notebook nem fog kelleni, ez csak a demonstrációt könnyíti meg.
Sajnos a Python még relatív széles körben használt 2.x változata, és a 2008 óta elérheto 3.x változat között nincs teljes kompatibilitás. Tehát, ha például az interneten ilyen kóddokat találunk:
print "Hello, World!"
gyaníthatjuk, hogy Python 2.x -el van dolgunk. Ugyanez a kód Python 3.x-ben így néz ki:
print("Hello, World!")
Errol még lesz szó, egyelore annyit kell tudnunk, hogy ez a segédlet a 3.x verzióval lett tesztelve.
# mivel a Python 2.x és 3.x szintakitiája enyhén eltér ellenorizzük, hogy a 3-ast használjuk-e
# késobb további magyarázat lesz ezekrol is
import platform
print(platform.python_version())
Térjük tehát rá a matematikai alapokra.
6 * 8 # szorzás
2 ** 10 # hatványozás
100 / 3 # osztás
100 // 3 # egész osztás
52 % 10 # modulo osztás
Pythonban a megszokott aritmetikai operátorok jelen vannak, sot további hasznosak is.
Operátor | Leírás |
---|---|
+ |
összeadás |
- |
kivonás |
* |
osztás |
** |
hatványozás |
// |
egész osztás |
/ |
osztás |
% |
modulo osztás |
A Python a # karakter utáni szöveget a sor végéig megjegyzésnek értelmezi, több soros megjegyzést 3 idézojellel vagy aposztróffal kezdhetünk és zárhatunk le.
"""
Ez több
soros komment
"""
'''
Ez
is.
'''
A változókba mentett értékek esetén interaktív módban nem jelenik meg a muvelet adott eredménye. Pl:
x = (3 ** 3 ) + 0.2
De kiírhatjuk például a print
funkcióval
print(x)
Python-ban nincs automatikus típus konverzió a változókra, de a type
függvénnyel kiírathatjuk egy változó típusát.
s = "1024"
type(s)
A következo muveletben sincs automatikus típus konverzió, így hibát kapunk.
x + s
type(s)
type(s) is str
type(x)
A Python alapvetoen 3 numerikus típust ismer: int
, float
és complex
.
a1 = 120
print(type(a1))
a2 = 12.0
print(type(a2))
a3 = 5 + 1j
print(type(a3))
a4 = float(7)
print(type(a4))
A sys.float_info.dig
megadja a tizedesjegyek maximális pontosságát.
import sys
sys.float_info.dig
A változóinkat integerré konvertálhatjuk, például így:
x + int(s)
s * 20 # ez nem megszorozza, hanem többszörözi
Pythonban az osztályokat StudlyCaps
a konstanasokat ALLCAPS
a változókat, metódusokat pedig snake_case
konvenccióval szokás jelölni.
Stringeket többféleképp definiálhatunk: például aposztróffal és idézojellel is.
s1 = "Ez az egyik mód."
s2 = 'De ez is muködik.'
print(s1, s2)
Emlékezteto a karakterkódolásokról:
UTF-8
, UTF-16
és az UTF-32
karakterkódolást, de számos más kódolás is használatban van.A sys.getdefaultencoding()
megadja, mi az alapértelmezett kódolás.
import sys
print(sys.getdefaultencoding())
A különbség az aposztróffal és idézojellel készített stringek között, hogy
"ebben így lehet ' karakter"
'ebben viszont \' kell a visszaper elé'
A prtint
funckió rengeteg lehetoséget ad. Késobb erre még visszatérünk, most nézzük meg a sep
elválasztó és az end
muködését példákon szemléltetve.
print('a','b', 'c', 'da\'sda"as"sd--e')
print("a","b", "c", "deas'aaa'asd")
print("a","b", "c", "de", sep="")
print("a","b", "c", "de", sep="***")
print("x\ny")
print("Ez kerüljön", end=" ")
print("egy sorba.")
Összetettebb kódsorok készítése elott ki kell emelni a Python azon sajátosságát, hogy a Python programokban a kód blokkokat
a sor elején található szóközökkel vagy tabulátorokkal jelöljük. Más nyelvekben a blokk elejét és végét jelölik meg, például C-ben, C++-ban stb. '{'
és '}'
zárójelekkel. A nyelv ezen tulajdonsága kikényszeríti a könnyen olvasható kód készítését, másik oldalon nagyobb figyelmet igényel a sorok írásánál. A szóköz és tabulátor karaktereket nem lehet keverni, gyakran négy szóközös tagolást alkalmaznak.
print("range(6): \t", end="")
# 0 1 2 3 4 5
for x in range(6):
print("%4d" % x, end="")
print("\nrange(3, 9): \t", end="")
# 3 4 5 6 7 8
for x in range(3, 9):
print("%4d" % x, end="")
print("\nrange(3,14,2):\t", end="")
# 3 5 7 9 11 13
for x in range(3, 14, 2):
print("%4d" % x, end="")
print("\narray (tömb):\t", end="")
primes = [2, 3, 5, 7] # ez egy tömb, késobb errol bovebben
for prime in primes:
print("%4d" % prime, end="")
print("\nwhile: ", end="")
# 0 1 2 3 4
i = 0
while i < 5:
print("%4d" % i, end="")
i += 1