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.

python bevezetés – anime lány laptopnál tanul programozni, barátságos python kígyóval

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. 

Pixelgrafika példa: anime lány szeme 1600× nagyításban, látható pixelrács és képpontok

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
szam = int(input(„Adj meg egy számot: „))
print(„A megadott szám: „, szam)
print(„A megadott szám fele: „, szam / 2)
print(„A megadott szám kétszerese: „, szam * 2)
print(„A szám maradéka 3-mal osztva”, szam % 3)

Kérj be két számot külön-külön, majd irasd ki a kettő összegét

Megoldás
elso_szam = int(input(„Adj meg egy számot: „))
masodik_szam = int(input(„Adj meg még egy számot: „))
osszeg = elso_szam + masodik_szam
print(„Az eredmény: „, osszeg)

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
szam = int(input(„Adj meg egy egész számot: „))
print(szam % 2)
print(„Ha a maradék 0, akkor páros, ha 1, akkor páratlan a megadott szám”)

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

 

Vidám anime lány számítógépnél grafikát készít, Inkscape alapok tanulása

Ha szeretnél továbbhaladni a Python programozással, lépj a következő leckére: