A konzol
Ahhoz, hogy a programok amiket készítünk, kommunikálni tudjanak velünk, szükség van valamiféle felületre, ahol meg tudjuk jeleníteni az adatokat amiket kiszámoltunk, vagy ahová beírhajtuk az információkat, amiket szeretnénk, hogy a program felhasználjon. Bár manapság a legtöbb program szép, grafikus felhasználói felülettel rendelkezik (gombokkal, szövegdobozokkal, feliratokkal, stb.), az egyszerűbb programok a mai napig egy szöveges felhasználói felületet, a konzolt használnak a velünk való kommunikációra.
A konzol egy szöveges felület, ahová a programunk adatokat tud kiírni, vagy szöveges adatokat tud "megkérdezni" a felhasználótól. A konzol pontos megjelenése a futtató környezettől függ, de a lényege ugyanaz: szöveges adatok kiírása, valamint beolvasása az egyszerű információcsere érdekében. Elképzelhetjük úgy, mint egy "chat ablakot", amin keresztül "beszélgethetünk" a programunkkal.
Adatok kiírása a konzolra
A konzolra történő kiíráshoz a print utasítást használhatjuk. Mint minden más utasításnak, ennek a neve után is zárójeleket teszünk, ezen belül adhatjuk meg hogy mit szeretnénk kiírni, valamint az egyéb paramétereket, beállításokat, amiket majd a print-nek meg szeretnénk adni (lásd: lentebb). A legegyszerűbb felhasználása, ha csak egy paramétert adunk meg neki:
print("Minta felirat!")
Alap beállítás mentén a print utasítás a kiírt szöveg után tesz egy új sor karaktert, így minden kiírt információ jól elkülöníthetően új sorba kerül.
A print utasítás azonban egynél több paraméterrel is használható. Ha több adatot szeretnénk egyszerre kiírni, ezeket elég felsorolnunk, és a print össze fogja őket fűzni egy-egy szóközzel tagolva. Az utasításoknak több paramétert mindig vesszővel elválasztva tudunk megadni, például így:print("Minta felirat", 13)
Amennyiben azt szeretnénk, hogy a print ne szóközzel válassza el az egymás után kiírt információkat, hanem például kötőjelet tegyen közéjük, vagy épp ne tegyen közéjük semmit, akkor használhatjuk az utasítás sep tulajdonságát, például így:
print("Minta felirat", 13, sep="-")
Ha pedig nem szeretnénk a print utasítás által kiírt információk mögé sortörést helyezni, mert több print eredményét egy sorban szeretnénk megjeleníteni, akkor ezt is eltávolíthatjuk az end tulajdonság használatával:
print("Felirat sortörés nélkül", end="")
Összefoglaló a print használatáról
| Kódrészlet | Kimenet |
|---|---|
|
alma |
|
alma körte 13 |
|
alma@szilva@narancs |
|
almabarack |
Gyakorló feladatok a print elsajátíásához
1. Feladat Írd ki egymás alá (tehát külön sorban) az alma, a szilva, valamint a barack szavakat! Megoldom a laborban!
2. Feladat Írd ki - soronként egymás alá - a konzolra a "Pannónia dícsérete" című vers sorait! (lásd: lentebb) Megoldom a laborban!
Eddig Itália földjén termettek csak a könyvek,
S most Pannónia is ontja a szép dalokat.
Sokra becsülnek már, a hazám is büszke lehet rám,
Szellemem egyre dicsőbb, s általa híres e föld!
3. Feladat Adott az alábbi kódrészlet.
print(2, 5, 9, 13)
print("Budapest", "Szolnok", "Debrecen", "Nyíregyháza")
print("vaj", "liszt", "cukor", "tojás")
Végezd el a szükséges módosításokat ezen a kódrészleten, hogy a kód kimenete az alábbi legyen:
2<5<9<13 Budapest -> Szolnok -> Debrecen -> Nyíregyháza vaj, liszt, cukor, tojás
A feladat megoldásához próbáld meg a sep paramétert használni!
4. Feladat Adott az alábbi kódrészlet:
print("Anna")
print("Berci")
print("Cézár")
print("Dorka")
Alakítsd át a programot az end paraméter használatával úgy, hogy a kód kimenete az alábbi legyen:
Anna, Berci, Cézár, Dorka
5. Feladat Az alábbi kódrészlet hibákat tartalmaz, így sajnos nem fut le. Javítsd a kódban található hibákat, hogy a kód működőképessé váljon!
prit("Szia!")
print(Én vagyok az első program.)
print "Kiírok három sor szöveget."
6. Feladat Válaszolj az alábbi kvízkérdésekre, hogy teszteld a tudásod a print utasításról!
2; 3; 5 szöveget jelenítse meg a konzolon. Melyik print utasítás a megfelelő ehhez?¤1¤Mivel a cél a számok kiírása, közöttük egy pontosvesszővel és egy szóközzel, így a print(2, 3, 5, sep="; ") utasítás a helyes.¤print(2, 3, 5, sep="; ")¤print(2, 3, 5)¤print("2, 3, 5")¤print(2, 3, 5, end="; ")
radio¤Melyik paramétert szükséges használnunk a print utasításban, ha azt szeretnénk, hogy a kiírt szöveg után NE kerüljön sortörés?¤3¤Mivel a kiírt szöveg utáni részt szeretnénk megváltoztatni, az end tulajdonságot kell egy üres szövegre "" beállítanunk.¤sep=""¤sep="\n"¤end=""¤end=0
radio¤Mit ír ki a konzolra a print(2 + 5) kódrészlet?¤4¤Mivel a művelet nincs idézőjelben, azaz nem lett szövegnek jelölve, a Python össze fogja adni a két számot, és kiírja a művelet eredményét.¤25¤2 5¤2 + 5¤7Adatok beolvasása a konzolról
Szeretnél az ünnepek alatt is gyakorolni? Vár az Easter Bug Hunt játékunk! Csatlakozz, és keresd meg az összes hibát - akár még jutalom is ütheti a markod!
Irány a játékAmennyiben adatokat szeretnénk beolvasni a konzolról, azaz kérdezni szeretnénk valamit a felhasználótól, akkor az input utasítást kell használnunk. A legtöbb nyelvtől eltérően, a Python nyelvben az input utasításon belül rögtön megadhatunk egy címkét, "kérdést" is az adatbekéréshez, ezt a feliratot ki fogja írni a konzolra az adatok bekérése előtt, így a felhasználó rögtön láthatja, hogy milyen információ beírására számítunk. Például:
input("Adj meg egy számot:")
Ez az utasítás ki fogja írni a benne található szöveget a konzolra, majd vár az adatbevitelre. A felhasználó beírja az adatot, majd megnyomja az ENTER billentyűt, ekkor az input utasítás visszatérési értékként visszaadja a beolvasott adatot szövegként. Ezt letárolhatjuk például egy változóban (további információk a Változók című fejezetben) későbbi felhasználásra:
nev = input("Hogy hívnak?")
print("A neved:", nev)
Ne feledd! Az input minden esetben szövegként olvassa be az információt a konzolról. Ha azt más adattípussal szeretnéd letárolni, mert például egy számot kértünk be, amivel később számolni szeretnénk, akkor az input-tal beolvasott adatot át kell konvertálni, például így:
szam = int(input("Adj egy számot!"))
Próbáld ki magad is! Nézd át a cikkünkhöz tartozó mintakódot - szerkeszd és futtasd közvetlenül a böngésződben, az info9
LineFlame fejlesztőeszközével!
Mintakód
print("Hogy hívnak?")
nev = input("A nevem:")
ev = int(input("Születési évem:"))