Szerkesztés alatt!
Az oldal további része szerkesztés alatt áll, a tartalma minden további értesítés nélkül többször, gyakran, jelentősen megváltozhat!
Python alapok¶
Hello World!¶
Mielőtt részletesebben belemennénk a Python rejtelmeiben érdemes a lehető legegyszerűbb program részletünket megírni.
Legyen ez most egy egyszerű "Hello World!"
szöveget kiíró kódrészlet.
1 |
|
Mentsük el ezt egy hello.py
fájlba és futtassuk le.
Amennyiben terminálból szeretnénk futtatni ezt akkor az alábbi paranccsal megtehetjük:
python hello.py
Az eredménye ennek az, hogy a képernyőn megjelent a Hello World!
kiírás.
Kis- és nagybetűk
Fontos kiemelni azt, hogy Pythonban meg vannak különböztetve a kis- és nagybetűk (case sensitive).
Azaz ha a fenti példában a print
helyett PRINT
-et írtunk volna akkor nem működött volna a kiíratásunk.
Ez azért van, mert a kisbetűs print
és nagybetűs PRINT
két eltérő elemre hivatkozik és csak a kisbetűs létezik.
További kiegészítés: Ez a tulajdonság sok más programozási nyelvben is megtalálható.
A pontosvessző hiánya¶
Amennyiben esetleg van ismeretünk már programozási nyelvvel elsőre furcsa lehet, de az utasítások végére nem kell pontosvesszőt írni Pythonban.
Így a fenti "Hello World!" esetben a print
után se írtuk ezt ki.
Kommentek¶
Pythonban írhatunk a kódba kommenteket (megjegyzéseket).
Egysoros kommentet #
után írhatunk, míg több soros kommentet egymás utáni #
-kell írhatunk. Lásd még.
1 2 3 4 |
|
Alapvető adattípusok¶
Az alábbiakban röviden áttekintjük a Python legalapvetőbb adattípusait és azok jellemzőit.
A bool
típus¶
Logikai adattípus. Értéke True
vagy False
lehet. Fontos, hogy mindkét kulcsszó érzékeny a kis- és nagybetűkre.
(tehát pl. a Javából ismert csupa kisbetűs true
nem fog működni).
Az int
típus¶
Az egész számok típusa. A típusra vonatkozóan nincs méretkorlát.
Régebbi verziók
Python 2-ben még volt külön long
és int
típus az egész számokra.
Ezt Python 3-ban egységesítették int
-é.
A float
típus¶
A lebegőpontos ("valós") számok típusa. Pythonban is tizedespontot használunk tizedesvessző helyett a lebegőpontos számok megadásakor (pl. 3.14
).
Az str
típus¶
Szöveges adattípus, string. Pythonban nincs külön típusa egy karakternek. Pythonban szövegeket általában idézőjelek ("...") vagy aposztrófok ('...') között adunk meg. A két megadási mód között nincs lényegi különbség.
Kitekintés más nyelvekre
Más nyelvekben előfordulhat, hogy egy karakternek van saját adattípusa. Például C-ben/Java-ban van char
típus erre a célra.
Kiíratás¶
Ha Pythonban ki szeretnénk valamit íratni a standard outputra, akkor a print()
beépített függvényt tudjuk használni.
Ezt használtuk már a fejezet elején is.
A python
(vagy szükség esetén python3
) paranccsal indítsuk el a parancssori Python értelmezőt, majd adjuk ki az alábbi utasítást!
1 |
|
Kimenet
1 |
|
Az Enter lenyomása után valóban megjelenik a konzolon a "Hello World!" szöveg.
A print()
függvényt egyébként több paraméterrel is meghívhatjuk. Ekkor a függvény ezeket a paramétereket sorban, (alapértelmezett módon) szóközzel elválasztva írja ki.
1 |
|
Kimenet
Most már 5 paraméterünk van
Szöveg formázás¶
A formázott szövegek segítségével egyszerűen és intuitíven megadhatók a behelyettesítendő értékeket (pl. változókat) tartalmazó szövegek. Ekkor - a "hagyományos" stringösszefűzős módszerrel ellentétben - nem kell megszakítanunk a szövegünk folytonosságát mindenféle összefűzésekkel, valamint a típuskonverziókkal sem kell bajlódnunk.
Pythonban a szövegek formázására többféle módszert is használhatunk. A következő három alfejezet ezeket mutatja be röviden.
%-os formázás¶
A %
formázás az egyik legrégebbi mód Pythonban arra, hogy behelyettesítsünk értékeket.
A string típuson lehetőség van használni a %
műveletet (operátort).
Ennek segítségével a szövegben található %-os kifejezések helyére van lehetőség
értékeket behelyettesíteni.
A szövegben a %s
helyére másik stringet, míg %d
-vel egész értékeket tudunk helyettesíteni.
Az operátor bal oldalán kell a stringnek lennie, míg másik oldalán a behelyettesítendő értékeknek.
Vegyük példának az alábbi utasítás sorozatot:
%-os formázás
1 2 3 4 |
|
Példa kimenete
1 |
|
A format
metódus¶
A format
metódus is a string típusú adatokon működik.
A szövegben elhelyezett {}
elemeket tudja behelyettesíteni a kapott paraméterekkel
és balról jobbra haladva illeszti be az értékeket.
Vegyük példának az alábbi utasítás sorozatot:
format
metódus
1 2 3 4 |
|
Példa kimenete
1 |
|
A {}
kifejezéseket nem csak ilyen formában lehet használni, hanem adhatunk nevet is
a behelyettesítendő elemnek. Vegyük az alábbi példát ahol a e
-nek neveztük el
a behelyettesítendő elemet:
format
metódus paraméterezés
1 2 |
|
Példa kimenete
1 |
|
f-string-ek¶
Az f-string-ek (formatted string) tovább egyszerűsítik a szöveg formázást.
Segítségükkel közvetlen a szövegben meg tudjuk adni mely változókat szeretnénk behelyettesíteni.
Ehhez ismételten a {}
formátumot fogjuk használni és a kapcsos zárójelek közé adhatjuk meg a változókat.
Azonban, hogy egy string f-string legyen egy f
prefixxel kell ellátni.
Vegyük példának az alábbi utasítás sorozatot:
f-string formázás
1 2 3 4 |
|
Példa kimenete
1 |
|
A kapcsos zárójelek közé nem csak egyszerű változókat tudunk megadni hanem komplexebb dolgokat is.
Változók¶
Pythonban lehetőség van létrehozni változókat.
Azonban nincs lehetőségünk külön változó deklarációra, ugyanis Pythonban egy változó akkor jön létre, amikor először értéket adunk neki.
Az értékadásra az =
(egyenlőségjel) operátort használjuk.
1 2 |
|
A változók elnevezésre vonatkozóan van néhány szabály, amelyet szem előtt kell tartanunk:
- A változónév csak betűket, számokat és alulvonás karaktert (
_
) tartalmazhat. - A változónév csak betűvel vagy alulvonással kezdődhet (nem kezdődhet számmal).
- A változónév érzékeny a kis- és nagybetűkre (tehát pl.
foo
,Foo
ésFOO
három különböző változónak számít). - A változónév természetesen nem lehet foglalt kulcsszó (pl.: class, except stb.).
Változó név eltérések
1 2 3 4 5 |
|
Kimenet
1 2 |
|
Változó elnevezési konvenciók
Pythonban az aláhúzással kezdődő változónevekere vannak konvenciók. Amennyiben egy változónév egy darab aláhúzással kezdődőik az azt akarja jelenteni, hogy csak az adott "részen" belül ajánlatos használni. A kettő aláhúzással kezdődő neveket maga a Python interpreter kicsit átalakítja. További konvenciókat és bővebb információt a PEP-8 ad.
Dinamikusan típusosság¶
Egy érdekesség, hogy Pythonban ugyanannak a változónak nem csak az értéke változhat meg hanem a típusa is. Azaz a változó "tartalmát" teljesen le lehet cserélni.
1 2 3 |
|
Például a fenti kódban a val
változó kezdetben egy egész számot, majd egy valós számot, később pedig egy szöveget tárol.
Ezt a jelenséget dinamikusan típusosságnak nevezzük.
Azt, hogy egy adott pillanatban egy változó éppen milyen típusú adatot tárol, egyszerűen lekérdezhetjük a type()
függvény segítségével.
Példa a type() használatára
1 2 |
|
Kimenet
1 |
|
Alapvető operátorok¶
A Python nyelv fontosabb operátorai:
Kategória | Operátorok |
---|---|
Aritmetikai operátorok | + , - , * , / , // , % , ** |
Hozzárendelő operátorok | = , += , -= , *= , /= |
Összehasonlító operátorok | == , != , < , <= , > , >= |
Logikai operátorok | and , or , not |
Operátorok:
- Az alapvető aritmetikai operátorok a matematikából megismert precedenciát használják.
- A
/
operátor mindig (egész operandusok esetén is) lebegőpontos osztást végez. - Egész osztást a
//
(dupla per) operátorral végezhetünk. - Hatványozásra a
**
(dupla csillag) operátor alkalmas. - A logikai operátorok esetén nyelvi kulcsszavakat kell használni:
and
(logikai ÉS),or
(logikai VAGY),not
(logikai tagadás).
Példa operátorok
1 2 3 |
|
Kimenet
1 2 3 |
|
Egy érdekes Python tulajdonság a szövegek többszörözése.
Ha egy szöveget "beszorzunk" egy számmal (*
operátor), akkor a szöveg a szám által meghatározott alkalommal lesz egymás után.
string * int
1 2 3 4 5 6 7 8 |
|
Kimenet
1 2 3 |
|
Logikai operátorok
Érdemes megjegyezni, hogy más nyelvekben a logikai operátorra tipikusan vannak szimbólumok amiket használni kell és nem kulcsszavakat alkalmazunk.
Inkrementálás, dekrementálás¶
Fontos megjegyezni, hogy a inkrementáló/dekrementáló operátorok, vagyis a ++
és a --
operátorok Pythonban nem léteznek (se prefix, se posztfix formában)!
Hibás ++ operátor
1 2 |
|
Visszakapott hibajelzés
1 2 3 4 |
|
Ezek helyett használjuk a += 1
, illetve -= 1
alternatívákat az érték 1-gyel való növeléséhez, illetve csökkentéséhez.
Példa +=/-=
1 2 3 4 5 6 7 |
|
Kimenet
1 2 |
|
Típuskonverzió¶
Pythonban szükségünk lehet arra, hogy egy adatot más típusra konvertáljunk.
Ha egy szöveget egész számmá akarunk alakítani, akkor az int()
függvényt használjuk.
int()
1 |
|
Ha egy szöveget lebegőpontos számra szeretnénk konvertálni, a float()
függvény használatos.
float()
1 |
|
Pythonban van egy olyan szabály, hogy szöveget csak szöveggel lehet összefűzni. Ha egy szöveget nem egy másik szöveggel akarunk összefűzni, akkor hibát kapunk.
Szöveg + szám
1 |
|
Visszakapott hibajelzés
1 2 3 |
|
Ekkor a nem szöveges típusú adatot először szöveggé kell konvertálnunk az str()
függvénnyel.
Alternatíva, hogy valamely szöveg formázási módot használjuk.
str()
1 |
|
Kimenet
1 |
|
Beolvasás a konzolról¶
Ha Pythonban adatot szeretnénk beolvasni a felhasználói bemenetről (standard input/stdin), akkor az input()
függvényt tudjuk használni.
A függvény visszatér a beolvasott adattal, így egyszerűen eltárolhatjuk azt egy változóban, ha szeretnénk.
Az input()
-nak opcionálisan átadható egy szöveges paraméter is.
Ez a szöveg az input adat beolvasásakor jelenik meg, így ezt általában arra használjuk, hogy tájékoztassuk a felhasználót, hogy milyen bemeneti adatot vár a programunk.
Fontos megjegyezni, hogy az input()
függvény minden esetben egy szöveget olvas be, amit szükség esetén más típusra kell konvertálnunk.
1 2 |
|
Kimenet
1 2 |
|
Olvassunk be két egész számot a felhasználói inputról, és írassuk ki az összegüket!
1 2 3 4 5 6 7 8 |
|
Kimenet
1 2 3 |
|