Python alapok¶
Kommentek¶
Pythonban is í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 |
|
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.
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
Hello World!
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
A pontosvessző hiánya¶
A fenti kódpéldákban észrevehettük, hogy a C-ben megszokottakkal ellentétben Pythonban nem teszünk az utasítások végére pontosvesszőt.
A Python készítői ügyeltek arra, hogy letisztult, egyszerűen olvasható kódokat írhassunk a nyelven, így többek között az utasítások végén lévő pontosvesszőktől is "megszabadultak".
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. Korábban volt külön long
és int
típus, viszont ezeket Python 3-ban egybevonták.
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. C-vel és Javával ellentétben Pythonban nincs külön karakter adattípus (az egy karakterből álló szöveg is szöveges típusú lesz).
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.
Szövegek összefűzésére a +
(plusz) operátort használjuk. Fontos, hogy az operátor mindkét operandusa szöveges típusú legyen (lásd: később)!
1 |
|
Kimenet
Hello Python
Egy érdekes Python feature 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 íródik ki.
1 2 3 |
|
Kimenet
hahahahaha hahahahaha NANANANANANANANANANA BATMAN
Egyéb adattípusok¶
Ezeken kívül vannak még Pythonban további adattípusok is (lista, tuple, halmaz, dictionary, komplex szám stb.). Ezek egy részével később fogunk megismerkedni.
Változók¶
Természetesen Pythonban is tudunk létrehozni változókat.
A C-ben megszokottakkal ellentétben Pythonban 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 a szokásos =
(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 tartalmazhat ékezeteket, azonban ezt célszerű kerülni.
- 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.).
1 2 3 4 5 |
|
Kimenet
palacsinta tiramisu
Dinamikusan típusosság¶
Egy érdekesség, hogy Pythonban ugyanaz a változó akár eltérő típusú értékeket is tárolhat.
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.
1 2 |
|
Kimenet
<class 'str'>
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 |
A legtöbb operátor a C-ben és Javában tanultakkal megegyező módon viselkedik. Néhány operátor viszont a megszokottaktól eltérő módon működik:
- A
/
operátor mindig (egész operandusok esetén is) lebegőpontos osztást végez. - Egészosztást a
//
(dupla per) operátorral végezhetünk. - Hatványozásra a
**
(dupla csillag) operátor alkalmas. - A logikai operátorok eltérnek a C-ben megszokottaktól:
and
(logikai ÉS),or
(logikai VAGY),not
(logikai tagadás).
1 2 3 |
|
Kimenet
2.5 2 25
Inkrementálás, dekrementálás¶
Fontos megjegyezni, hogy a C-ben tanult inkrementáló/dekrementáló operátorok, vagyis a ++
és a --
operátorok Pythonban nem léteznek (se prefix, se posztfix formában)!
1 2 |
|
Kimenet
File "<stdin>", line 1 szam++ ^ SyntaxError: invalid syntax
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.
1 2 3 4 5 6 7 |
|
Kimenet
11 10
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.
1 |
|
Ha egy szöveget lebegőpontos számra szeretnénk konvertálni, a float()
függvény használatos.
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.
1 |
|
Kimenet
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate str (not "int") to str
Ekkor a nem szöveges típusú adatot először szöveggé kell konvertálnunk az str()
függvénnyel.
1 |
|
Kimenet
Az élet értelme: 42
Beolvasás a konzolról¶
Ha Pythonban adatot szeretnénk beolvasni a felhasználói bemenetről, akkor az input()
függvény lesz a barátunk. 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
Hogy hívnak? Tamás Szia Tamás!
Példa: 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
Első szám: 5 Második szám: 2 Az összeg: 7
Feladatok¶
- Írj egy programot, ami bekéri a felhasználó adatait változóban, majd soronként kiírja azt!