Python
Python input és matematikai operátorok
Mi az az input?
Az előző leckében már megismerkedtünk a változókkal és az adattípusokkal. Most továbblépünk egy nagyon fontos szintre: a program ne csak eltároljon adatokat, hanem számoljon velük, és akár a felhasználótól is kérjen be adatot.
A Pythonban ehhez két alapdolgot kell megértenünk. Az egyik a matematikai operátorok használata, vagyis hogyan adunk össze, vonunk ki, szorzunk vagy osztunk. A másik az adatbekérés, amit a input() függvénnyel tudunk megoldani. A python input az egyik legfontosabb alaplépés, mert ettől lesz a program interaktív: már nem csak fut, hanem reagál is arra, amit a felhasználó beír.
Matematikai operátorok
Pythonnal végezhetsz egyszerű matematikai műveletekkel számolásokat, pont mint matekórán, csak a megfelelő jelekkel
print(3 + 2)
print(3 – 1)
print(3 * 2)
print(6 / 2)
Fontos: az osztás (/ jel) Python 3-ban már lebegőpontos megoldást ad vissza, tehát sokszor megjelenik a .0 is.
Ami új lehet, az a maradékos osztás. Ezt % jellel írjuk de nem százalékot jelent, hanem a maradékos osztás operátora.
print(16 % 5)
A kimenet 1 lesz, mert a 16-ot ha elosztjuk 5-tel, az ugyan megvan benne háromszor, de a maradék 1 lesz. Ezt nagyon sokszor használjuk, így lehet ellenőrizni, hogy egy szám osztható-e maradék nélkül. Ha valami osztható, akkor 0, ha nem, akkor valami más. Páros-páratlan ellenőrzésnél is szuper lehetőség lesz majd.
Az egész osztást // jellel írjuk:
print(7 // 2)
Itt a kimenet 3, mert nem írja ki a tizedes részt, csak az egész részt tartja meg.
A hatványozás jele a **:
print(2**3)
kimenet: 8. Ez azt jelenti: 2 a 3. hatványon, az eredmény pedig 8.
Műveletek sorrendje
A Python a műveleteket alapvetően megszokott matematikai sorrend szerint végzi el. Ha biztosra akarsz menni, használj zárójelet.
print(2 + 3 * 4)
print((2 + 3) * 4)
Pont ahogy a matematikában az első végeredménye 14, a másodiké 20 lesz.
Adatbekérés Pythonban
Eddig mi adtunk meg a programban értékeket. De sokkal izgalmasabb, ha a program a felhasználótól kér be adatot. Erre való az input().
Egyszerű adatbekérés
input(„Mi a neved?”)
Ilyenkor a Python megáll, és várja, hogy a felhasználó beírjon valamit. De ha csak bekérjük az adatot, attól még nem történik vele semmi.
felhasznalo_nev = input(„Mi a neved? „)
print(felhasznalo_nev)
- Mi történik itt?
- A bal oldalon van a változó neve
- Középen az egyenlőségjel
Jobb oldalon az az érték, amit el akarunk tárolni. A felhasználó által megadott adat innentől a felhasznalo_nev változóban lesz, és tudunk vele dolgozni.
Kérjünk be egy nevet és írjunk is valamit vissza:
felhasznalo_nev = input(„Mi a neved? „)
print(„Szia „, felhasznalo_nev)
Miért ad hibát ez a program?
szam = input(„Adj meg egy számot! „)
print(szam)
print(szam / 2)
Az input() függvényből érkező adat mindig szövegként, vagyis str típusként érkezik meg. Akkor is, ha a felhasználó számot ír be. Tehát, ha azt írja be, hogy 10, azt a Python így értelmezi: „10”, és a szöveget nem tudjuk elosztani kettővel. Át kell alakítanunk a szöveget számmá. Ha egész számmá szeretnénk -> int, ha tizedesjegyeket is szeretnénk – float típusú számra lesz szükségünk
bekert_szam = input(„Adj meg egy számot! „)
szam = int(bekert_szam)
print(szam)
print(szam / 2)
vagy
szam = int(input(„Adj meg egy számot! „))
print(szam)
print(szam / 2)
Tizedes számnál ez ugyanígy néz ki, de float kell. Fontos, hogy ha float() típussá alakítunk egy számot, akkor a felhasználónak a tizedesjegyet ponttal kell megadnia, nem vesszővel. (3.14)
szam = float(input(„Adj meg egy tizedes számot! „))
print(szam)
print(szam / 2)
Ha a felhasználó olyat ír bele, ami nem alakítható át számmá, akkor a program hibát fog kiírni. Később majd ezt is megtanuljuk kezelni.
Adatbekérés és számolás együtt
Ez egy összetettebb példa, de most már egyszerű lesz. Kérj be egy számot, irasd ki a megadott számot, majd írasd ki a szám felét, a szám kétszeresét és a szám maradékát 3-mal osztva.
Megoldás
Kérj be két számot külön-külön, majd irasd ki a kettő összegét
Megoldás
Kérj be a felhasználótól egy számot, majd vizsgáld meg a maradékos osztás segítségével, hogy páros vagy páratlan-e.
Megoldás
Gyakori hibalehetőségek Python input használatakor
- Elfelejtjük átalakítani a szöveget számmá
- int() helyet float() kellene, mert tizedes számot ír be a felhasználó
- A felhasználó vesszővel írja a tizedes számot pont helyett
- A felhasználó nem számot ír be, mégis int() vagy float() átalakítást használunk
Ha ettől részletesebben szeretnél a Python inputról olvasni, keresd meg a hivatalos dokumentációt









