Fájlok írása Pytonban!
Elkészült a Python nyelv Szövegfájlok írása tananyagunk! Jó tanulást, jó gyakorlást!

<info9>

Változók és adattípusok

Közös játék a haverokkal?

Bérelj magadnak saját szervert egy közös Minecraftozáshoz az Apex Hosting-tól. A szerveredet egy kényelmes online felületen keresztül egyszerűen konfigurálhatod, és már kezdődhet is a játék!

További információk

Ahhoz, hogy adatokkal tudjunk dolgozni (például bekérni a felhasználótól számokat, és azokból számolni, stb.), először le kell tárolnunk, "meg kell jegyeznünk" azokat. Erre a célra a programozásban változókat használunk. Egy változót elképzelhetünk úgy, mint egy kis felcímkézett dobozt, aminek van egy neve ami alapján be tudjuk azonosítani, és bele tudunk tenni különféle információkat - egy számot, vagy éppen egy szöveget. Ezt a beletett információt pedig később a változó neve alapján ismét elérhetjük ("megkeressük a polcon a dobozt, és megnézzük, hogy mi van benne").

Változók létrehozása

Ahhoz, hogy létrehozzunk egy változót, először ki kell találnunk neki egy nevet. Fontos, hogy a változók neve nem tartalmazhat szóközt, és érdemes mellőzni az ékezetes betűk használatát is. Ezen felül a változó neve nem kezdődhet számmal sem - de később tartalmazhat számot, tehát például az 1nev NEM megfelelő, de a nev1 már igen.

Bár elvileg bármi lehet egy változó neve, az elnevezéskor érdemes arra törekedni, hogy a név könnyen beazonosítható legyen, hogy néhány kódsorral lentebb is tudjuk, hogy vajon mire is használtuk. Ez később nekünk is nagy segítség, és ha valakitől segítséget kérünk, akkor ő is jobban átlátja majd, hogy mit is csinál a kódunk. Néhány példa változók praktikus elnevezésére:

Ezek természetesen csak példák. Ahhoz, hogy egy változóban elhelyezzünk egy értéket, az = operátort kell használnunk. Az egyenlőségjel operátor azt, ami a jobb oldalán áll, fogja beletenni abba, ami a bal oldalán áll -- tehát a bal oldalán (azaz "előtte") kell megadnunk a "dobozt", például a változónk nevét, a jobb oldalán (azaz "utána") pedig az értéket, amit bele szeretnénk tenni. A Python nyelvben a változókat külön létrehozni nem szükséges - amint először beleteszünk egy értéket, a változó magától "megszületik", ha pedig új értéket teszünk bele, úgy az értéke természetesen megváltozik (hiszen egy dobozban csak egy információ fér el egyszerre). Nézzünk egy példát egy változó létrehozására és módosítására:

nev = "Ferenc" print(nev) nev = "Sándor" print(nev)




[ { "steps": [0], "variables": [{"name":"nev","value":"Ferenc"}], "hint": "Létrehozunk egy nev nevű változót, amelynek az értéke Ferenc lesz. (a változó értékét efölött a doboz fölött követheted)"}, { "steps": [1], "variables": [{"name":"nev","value":"Ferenc"}], "hint": "Kiírjuk a konzolra a nev változó értékét, azaz a Ferenc szót.", "console":"Ferenc"}, { "steps": [2], "variables": [{"name":"nev","value":"Sándor"}], "hint": "A nev változónak új értéket adunk, így mostantól a Sándor szó szerepel benne.", "console":"Ferenc"}, { "steps": [3], "variables": [{"name":"nev","value":"Sándor"}], "hint": "Kiírjuk a konzolra a nev változó értékét, azaz a Sándor szót.", "console":"Ferenc
Sándor"} ]

Adattípusok

Természetesen a programunk nem csak szövegekkel tud dolgozni - gyakran számokat, vagy más adatokat is le kell tárolnunk, és ezekben az esetekben elengedhetetlenül fontos a megfelelő adattípus használata - hiszen számolni például csak számokkal tudunk, szövegekkel nem. A megfelelő adattípus használatáról gondoskodni pedig természetesen szintén a mi feladatunk!

A python egy szigorúan és dinamikusan típusos nyelv.

Az alábbi táblázat összefoglalja a python nyelv legfontosabb 4 egyszerű adattípusát. Ennél természetesen jóval több komplex adatszerkezet is létezik a nyelvben, mint a listák, vagy a szótárak, de ezekkel külön fejezetekben foglalkozunk, most ismerjük meg a 4 fontosabb alaptípust:

Erre figyelj!
Sokszor dolgozunk olyan azonosító számokkal, amik számjegyekből állnak, de előfordulhat, hogy nullákkal kezdődnek. Ezen adatok tárolására érdemes mégis a str (szöveg) adattípust használnunk, mert számként tárolva a "szám eleji" nullák elvesznének! Mivel ezekkel az azonosítókkal amúgy sem végzünk (általában) matematikai műveleteket, így ez nem szokott problémát okozni.
Adattípus neve Leírás (felhasználás) Konvertálás Létrehozás, használat
str (string) szöveg
(pl.: név, lakcím, rendszám, stb.)
str(23) szov = "alma"
int (integer) egész szám
(pl.: születési év, darabszám, stb.)
int("12") egesz = 12
float tört szám
(pl.: két oldal hosszának az aránya)
float("3.14") tort = 3.4
bool (boolean) logikai érték
(csak igaz vagy hamis lehet - pl.: befizette-e már a képzés díját)
bool("True") logikai = True

Mivel a python nyelv dinamikusan kezeli a típusokat, így egy változó frissítésekor annak adattípusa is megváltozhat:

nev = "Ferenc" print(nev) nev = 3.14 print(nev) nev = 29 print(nev)



[ { "steps": [0], "variables": [{"name":"[str] nev","value":"Ferenc"}], "hint": "Létrehozunk egy nev nevű változót, amelynek az értéke Ferenc szó lesz, szövegként. (a változó értékét és típusát efölött a doboz fölött követheted)"}, { "steps": [1], "variables": [{"name":"[str] nev","value":"Ferenc"}], "hint": "Kiírjuk a konzolra a nev változó értékét, azaz a Ferenc szót.", "console":"Ferenc"}, { "steps": [2], "variables": [{"name":"[float] nev","value":"3.14"}], "hint": "A nev változónak új értéket adunk, így mostantól 3.14 lesz benne, tört számként (float).", "console":"Ferenc"}, { "steps": [3], "variables": [{"name":"[float] nev","value":"3.14"}], "hint": "Kiírjuk a konzolra a nev változó értékét, azaz a 3.14-et.", "console":"Ferenc
3.14"}, { "steps": [4], "variables": [{"name":"[int] nev","value":"29"}], "hint": "A nev változónak új értéket adunk, így mostantól a 29 lesz benne,e gész számként.", "console":"Ferenc
3.14"}, { "steps": [5], "variables": [{"name":"[int] nev","value":"29"}], "hint": "Kiírjuk a konzolra a nev változó értékét, azaz a 29-et.", "console":"Ferenc
3.14
29"} ]

Erre figyelj!
Pénzügyi adatok, és egyéb kritikus információk tárolására sose használd a float adattípust! A float-ként tárolt adatok a tárolás módja miatt egyes számolások során pontatlanná válhatnak. Ez hétköznapi számítások során nem okoz gondot - de float-okon végzett hosszú számítási sorozatok (pl.: több ezer pénzügyi számolás eredményének összegzése) esetén problémákhoz vezethetnek! Ezeket a kritikus adatokat mindig int-ként, vagy decimal típussal tároljuk!
radio¤Milyen adattípussal érdemes tárolnunk a felhasználó vezetéknevét?¤1¤Mivel a név egy szöveg, így mindenképp csak a str (string) jöhet szóba!¤str¤int¤float¤bool radio¤Milyen adattípussal érdemes tárolnunk a felhasználó születési évét?¤2¤Mivel a születési év egy egész szám, így az int (integer) adattípus a legkényelmesebb! A float felesleges, hiszen az évszám sosem lehet tört. Szövegként pedig nem rédemes tárolnunk, mivel így nem fogunk tudni számolni vele, és a matematikai operátorok (kisebb, nagyobb) sem lesznek használhatóak.¤str¤int¤float¤bool radio¤Milyen adattípussal érdemes tárolnunk, hogy a felhasználónak van-e autója?¤4¤Mivel ez egy eldöntendő kérdés, a válasz csakis IGEN (igaz), vagy NEM (hamis) lehet, más információ nem. Ennek tükrében erre a bool (logikai) adattípus a legmegfelelőbb!¤str¤int¤float¤bool radio¤Milyen adattípussal érdemes tárolnunk, hogy egy tanuló hány méter magas?¤3¤Mivel a testmagasságot általában centiméterben mérjük, méterre váltva az egy tört szám lesz, így érdemes a float (lebegőpontos) adattípust használnunk. Ha csak az egész részt tárolnánk egy int-ben, akkor az adat nagyon pontatlanná válna -- szövegként tárolva pedig nem tudnánk vele matematikai műveleteket végezni. (ha a tárolás centiméterben történik, akkor már természetesen elég lehet az egész számok használata)¤str¤int¤float¤bool

Egy adat adattípusát a type függvény segítségével kérhetjük le:

nev = "Ferenc"
print(type(nev))

Próbáld ki!

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!

Példa megnyitása

Gyakorló feladatok

1. Feladat: Kérd be a felhasználó keresztnevét, majd köszöntsd fel karácsony alkalmából a "Boldog Karácsonyt NÉV" felirat kiírásával -- a név helyére behelyettesítve a felhasználó nevét. (pl.: Boldog Karácsonyt Gréta) Megoldom a laborban!

2. Feladat: Kérd be a felhasználótól, hogy hány kutyája, és hány cicája van, majd írd ki a "Neked 2 kutyád, és 2 macskád van." mondatot, belehelyettesítve a felhasználó által beírt számokat. Megoldom a laborban!

3. Feladat: Kérd be a felhasználó keresztnevét, majd írd ki az alábbi mondatokat egymás alá a konzolra! A kiírt mondatokba a NÉV szó helyén a felhasználó neve jelenjen meg! Megoldom a laborban!

NÉV most kezd programozni tanulni.
NÉV elkészítette az első programját.