1. fejezet
Mi a Python, és hogyan fut egy program?
A Python általános célú programozási nyelv: webes szolgáltatások, adatelemzés, mesterséges intelligencia, automatizálás és oktatás egyaránt épül rá. Kezdőknek azért jó, mert a kódja tömör és jól olvasható – a szerkezetet a behúzás mutatja, nem kapcsos zárójelek.
A program utasítások sorozata egy szöveges fájlban (a Pythoné .py kiterjesztésű). A Python-értelmező (interpreter) ezt a fájlt olvassa, és az utasításokat fentről lefelé, egyenként hajtja végre. Ha futás közben hiba történik, ott megáll, és hibaüzenetet ír ki. Szintaktikai (nyelvtani) hibánál a program el sem indul: a Python futtatás előtt az egész fájlt átnézi.
A tanteremben a programot egy fejlesztőkörnyezetben (például VS Code-ban) írod, és a terminálban futtatod. Ezen az oldalon ugyanez a böngészőben történik: minden példa mellett ott a Futtatás gomb, és a valódi Python-értelmező fut le – nem utánzat. A példákat át is írhatod: próbáld ki, mi történik, ha változtatsz rajtuk. A ↺ gomb visszaállítja az eredeti kódot.
print("Szia, Python!")
print("Ez a második sor.")
A Lépésenként gomb a programot soronként mutatja be, négy részre bontva:
Magyarázat
Mi történik az éppen következő sorban, és miért.
Memória
A változók neve és aktuális értéke; függvényhívásnál a függvény saját kerete.
Kiértékelés
Hogyan számol a gép: a kifejezés lépésről lépésre, a végeredményig.
Konzol
Amit a program kiír, és amit a felhasználó beír.
Billentyűk: a szerkesztőben Ctrl+Enter futtat, a Tab négy szóközzel beljebb kezd; a nyomkövetésben a → és ← lép. A szerkesztőből az Esc, majd a Tab lép tovább.
2. fejezet
Az első utasítás: print()
A print() a Python beépített függvénye: amit a zárójelek közé írunk, azt kiírja a konzolra, majd új sort kezd. A zárójelben lévő értéket argumentumnak nevezzük.
printa függvény neve( … )a hívás: „futtasd le”"Szia!"az argumentum: egy szöveg
A szöveget (angolul string, a Pythonban str) idézőjelek közé írjuk – kettős ("…") és szimpla ('…') is jó, csak az elején és a végén ugyanolyan legyen. A számot nem tesszük idézőjelbe. Ha több értéket írunk vesszővel elválasztva, a print() mindegyiket kiírja, közéjük egy-egy szóközt téve.
print("Helló, világ!")
print('Szimpla idézőjel is jó.')
print(42)
print("A válasz:", 42)
print()
print("Az üres print() egy üres sort írt ki fölém.")
Idézőjel nélkül a szöveg nem szöveg. A print(Szia) sorban a Python a Szia nevű változót keresi, és mivel ilyen nincs, NameError hibát ad. Futtasd le – ilyen egy hibaüzenet, és alatta a magyarázata:
print(Szia)
A Python a kis- és nagybetűt is megkülönbözteti: a Print("x") szintén NameError, mert a függvény neve print.
Mit ír ki?
Hány sort ír ki ez a program, és mi áll a második sorban?
print("alma", "körte")
print("szilva")
print(3, "db")
- Két sort; a második:
szilva - Négy sort; a második:
körte - Három sort; a második:
szilva
Minden print() egy sort ír ki, és a végén új sort kezd – három hívás, három sor. Az első hívás két argumentumát egy sorba, szóközzel elválasztva írja: alma körte.
3. fejezet
Megjegyzések a kódban
A # jeltől a sor végéig tartó szöveg megjegyzés (komment): az értelmező figyelmen kívül hagyja. Arra való, hogy embereknek – a tanárnak, a csapattársnak vagy a jövőbeli önmagadnak – elmagyarázza, miért úgy működik a kód. Állhat külön sorban, vagy egy utasítás után.
# Ez a program a hét napjainak számát írja ki.
print(7) # a hét napjainak száma
# print("Ez a sor nem fut le, mert megjegyzés.")
És a """…"""?
Sok helyen „többsoros kommentként” emlegetik a három idézőjelet, de ez pontatlan. A """…""" valójában egy többsoros szöveg (szövegliterál): a Python létrehozza, csak éppen nem csinál vele semmit. A függvények és fájlok elején dokumentációs szövegként (docstring) használjuk – erről a függvényeknél lesz szó. Valódi megjegyzés Pythonban csak a #; több sorhoz minden sor elejére tegyél egyet.
A szerkesztőben Ctrl+/ a kijelölt sorokat megjegyzéssé alakítja (és vissza) – így ideiglenesen „kikapcsolhatsz” kódot.
4. fejezet
Változók és értékadás
A változó egy név, amely egy értékre hivatkozik a memóriában. Az értékadás (=) köti össze a nevet az értékkel: kor = 17 azt jelenti, hogy „a kor név mostantól a 17-es értéket jelöli”.
Az értékadás jobbról balra történik: a Python előbb kiszámolja a jobb oldalt, utána teszi az eredményt a bal oldali névhez. Ha a név már létezett, a régi értéke felülíródik. Kövesd lépésenként – figyeld a Memória részt:
kor = 17
nev = "Dóra"
print(nev, kor)
kor = 18
print(nev, kor)
kor = kor + 1
print("Jövőre:", kor)
Az = nem matematikai egyenlőség. A kor = kor + 1 matematikailag képtelenség, a programban viszont értelmes: „vedd a kor mostani értékét, adj hozzá egyet, és ez legyen a kor új értéke”. Két érték egyenlőségét a == vizsgálja – ezt a feltételes utasításoknál használjuk.
A Pythonban a változót nem kell előre „bejelenteni” (deklarálni), és a típusát sem kell megadni: az első értékadás hozza létre, a típusát pedig az érték határozza meg. Használni viszont csak azt a változót lehet, amely már kapott értéket – különben NameError a válasz.
Névadási szabályok
| Szabály | Helyes | Hibás |
|---|---|---|
| betűvel vagy aláhúzással kezdődik | szam1, _belso | 1szam |
csak betű, számjegy és _ lehet benne (ékezetes betű is, de szokás kerülni) | vezetek_nev | vezetek-nev, vezetek nev |
| kulcsszó nem lehet | osztaly | class, if, for |
| beépített függvény nevét ne használd | osszeg | sum, print, list (érvényes, de utána a függvény nem hívható) |
| kis- és nagybetű különbözik | nev, Nev és NEV három különböző név | |
A szabályokon túl a stílus is számít. A Python hivatalos stílusútmutatója, a PEP 8 a változókhoz a snake_case-t ajánlja: csupa kisbetű, a szavakat aláhúzás választja el (szuletesi_ev). A camelCase (szuletesiEv) is működik, de Pythonban ez nem szokás; a PascalCase (SzuletesiEv) az osztályok neveinek jár. A név legyen beszédes: a netto_ar elárulja, mit tárol, az x nem.
Mit ír ki?
a = 5 b = a a = 8 print(a, b)
8 88 55 8
A b = a a pillanatnyi értéket (5) köti a b-hez. Amikor később az a új értéket kap, az a b-t nem érinti: a b továbbra is az 5-re hivatkozik. Kövesd lépésenként, ha bizonytalan vagy.
5. fejezet
Az alapvető adattípusok
Minden értéknek van típusa: ez határozza meg, mit lehet vele csinálni. Két számot össze lehet szorozni, két szöveget nem. A type() függvény megmondja egy érték típusát.
egész szám
42, -7, 0, 1_000_000 (az aláhúzás csak tagol: egymillió)
valós (lebegőpontos) szám
3.14, -0.5, 2.0 – tizedesponttal.
szöveg
"alma", '42', "" (üres szöveg)
logikai érték
True (igaz) vagy False (hamis) – nagy kezdőbetűvel
egesz = 42
valos = 3.14
szoveg = "alma"
logikai = True
print(type(egesz))
print(type(valos))
print(type(szoveg))
print(type(logikai))
print(type("42"))
A "42" szöveg, nem szám. Az idézőjel teszi szöveggé: két karakterből (4 és 2) áll, számolni nem lehet vele. Ugyanígy a tizedesjel a Pythonban pont: a 3,14 nem egy szám, hanem két szám vesszővel elválasztva (egy tuple – erről később).
A változó típusa nem rögzített: ugyanaz a név később más típusú értéket is kaphat. Ezt nevezzük dinamikus típusosságnak. Kényelmes, de figyelni kell rá – a jó név (darab, nev) segít észben tartani, mit tárol a változó.
Van egy különleges érték is: a None jelentése „nincs érték”. Típusa NoneType; később, a függvényeknél találkozunk vele.
6. fejezet
Műveletek számokkal és szövegekkel
| Művelet | Jel | Példa | Eredmény |
|---|---|---|---|
| összeadás, kivonás | + - | 7 + 2, 7 - 2 | 9, 5 |
| szorzás | * | 7 * 2 | 14 |
| osztás | / | 7 / 2 | 3.5 (mindig float) |
| egészosztás | // | 7 // 2 | 3 |
| maradék | % | 7 % 2 | 1 |
| hatványozás | ** | 2 ** 10 | 1024 |
A műveleti sorrend a matematikából ismert: előbb a hatványozás, aztán a szorzás-osztás (* / // %), végül az összeadás-kivonás; azonos szinten balról jobbra – kivéve a hatványozást, amely jobbról balra halad (2 ** 3 ** 2 = 2 ** 9 = 512). Zárójellel bármikor felülírhatod. A Lépésenként nézet Kiértékelés részében látod, milyen sorrendben számol a gép:
a = 2 + 3 * 4 b = (2 + 3) * 4 c = 10 - 4 - 3 d = 2 ** 3 * 5 print(a, b, c, d)
2 + 3 * 4→2 + 12→14Egészosztás és maradék
A // megmondja, hányszor van meg az egyik szám a másikban, a % pedig, hogy mennyi marad. A kettő együtt egy felbontást ad: 135 = 2 · 60 + 15, vagyis 135 perc 2 óra és 15 perc.
perc = 135 ora = perc // 60 maradek = perc % 60 print(perc, "perc =", ora, "óra", maradek, "perc")
A % a gyakorlatban sokszor kell: szam % 2 0, ha a szám páros (2-vel osztva nem marad semmi), és 1, ha páratlan. Nemnegatív egész számnál a szam % 10 a szám utolsó számjegye, a szam // 10 pedig a szám az utolsó számjegy nélkül. Negatív számnál ez nem így van: a -17 % 10 értéke 3, a -17 // 10 értéke −2, mert a // lefelé kerekít.
Műveletek szövegekkel
A + két szöveget összefűz, a * egy szöveget megismétel egy egész számszor. A len() megadja a szöveg hosszát (a karakterek számát).
vezetek = "Kovács"
kereszt = "Dóra"
teljes = vezetek + " " + kereszt
print(teljes)
print("-" * 20)
print(len(teljes))
Szöveget és számot nem lehet összeadni. A "Kor: " + 17 TypeError-t ad: a + csak két szám vagy két szöveg között működik, és a Python magától nem alakítja át a számot szöveggé. Megoldás: alakítsd a számot szöveggé (str(17)), vagy add át őket külön argumentumként a print()-nek, vagy használj f-stringet (lásd lejjebb).
kor = 17
print("Kor: " + kor)
Mit ír ki?
print(17 // 5, 17 % 5, 17 / 5)
3.4 2 3.43 2 34 2 3.43 2 3.4
17 = 3 · 5 + 2, ezért az egészosztás 3, a maradék 2. A / mindig valós osztás: 3.4. Az egészosztás mindig lefelé (a kisebb egész felé) kerekít: a 3.4-ből és a 3.9-ből is 3 lesz – negatív számnál viszont a −3.4-ből −4.
Miért írja ki a 0.1 + 0.2, hogy 0.30000000000000004? A gép a valós számokat kettes számrendszerben tárolja, és a 0,1 ott végtelen tört – csak megközelítőleg fér el. Ez nem a Python hibája: minden olyan nyelvben így van, amely a valós számokat kettes számrendszerben tárolja – vagyis szinte mindegyikben. Kiírásnál a kerekítés segít: round(0.1 + 0.2, 2) vagy f-stringben {x:.2f}.
print(0.1 + 0.2) print(round(0.1 + 0.2, 2))
7. fejezet
Típuskonverzió
Egy értéket más típusúvá a típus nevével megegyező függvény alakít: int(), float(), str(), bool(). Az eredeti érték nem változik meg – a függvény új értéket ad vissza.
| Kifejezés | Eredmény | Megjegyzés |
|---|---|---|
int("42") | 42 | szövegből egész szám |
float("3.5") | 3.5 | szövegből valós szám (tizedespont!) |
int(3.99) | 3 | levágja a törtrészt (a 0 felé), nem kerekít: int(-3.99) → -3 |
round(3.99) | 4 | kerekítés a legközelebbi egészre |
round(2.5), round(3.5) | 2, 4 | pontosan .5-nél a páros szomszéd felé kerekít |
round(3.14159, 2) | 3.14 | kerekítés megadott tizedesjegyre |
str(17) | '17' | számból szöveg |
bool(0), bool("") | False | a 0 és az üres szöveg hamis… |
bool(5), bool("nem") | True | …a nem nulla szám és a nem üres szöveg igaz (a "nem" is!) |
int("3.5") | ValueError | az int() szövegből csak egész számot fogad |
szoveg = "3.75"
szam = float(szoveg)
egesz = int(szam)
kerekitett = round(szam)
print(szam, egesz, kerekitett)
print(str(egesz) + " darab")
print(bool(0), bool(""), bool("hamis"))
A bool("hamis") értéke True: a nem üres szöveg mindig igaz – a Python nem érti a szöveg jelentését. Az üres szöveg ("") és a nulla hamis.
Kerekítés .5-nél: a round() (és az f-string :.0f formázása) a pontosan félúton álló értéket a páros szomszéd felé kerekíti: round(2.5) → 2, round(3.5) → 4. Ez a „banki kerekítés”, amely sok kerekítés összegénél kiegyenlíti a hibát. Ha mindig felfelé kell kerekíteni .5-nél, azt külön kell megoldani.
8. fejezet
Beolvasás a billentyűzetről: input()
Az input() kiírja a zárójelben megadott kérdést, majd megvárja, amíg a felhasználó beír valamit és Entert nyom. A beírt sort adja vissza – ezt általában egy változóba tesszük. Futtasd, és válaszolj a konzolban:
nev = input("Hogy hívnak? ")
print("Szia,", nev + "!")
Akkor is str típusú értéket kapsz, ha a felhasználó számot ír be: a 17 beírásakor az eredmény a "17" szöveg. Számoláshoz át kell alakítani: int(input(…)) vagy float(input(…)).
Az int(input("…")) két függvényhívás egymásba ágyazva. Belülről kifelé értékelődik ki: előbb az input() fut le, és szöveget ad (pl. "2009"), aztán az int() ebből egész számot csinál (2009), végül az értékadás a változóba teszi.
ev = int(input("Melyik évben születtél? "))
kor = 2026 - ev
print("Idén", kor, "éves leszel.")
A klasszikus hiba: átalakítás nélkül a „számok” szövegként viselkednek. Futtasd, írj be két számot (pl. 5 és 3) – az eredmény 53 lesz, nem 8, mert két szöveg összefűzése történik. Javítsd ki a kódot int()-tel.
a = input("Első szám: ")
b = input("Második szám: ")
print("Az összeg:", a + b)
Ha a felhasználó nem számot ír be (például öt), az int() ValueError hibát ad. Ennek kezelését később tanuljuk; most még feltételezzük, hogy a bevitel helyes.
9. fejezet
Formázott kiírás: f-string, sep, end, speciális karakterek
Az f-string olyan szöveg, amelynek idézőjele elé f betűt írunk. A benne lévő kapcsos zárójelek ({…}) helyére a Python futáskor beírja a bennük álló kifejezés értékét. Így nem kell sem összefűzni, sem str()-rel alakítgatni.
nev = "Dóra"
kor = 17
print(f"{nev} {kor} éves.")
print(f"Öt év múlva {kor + 5} éves lesz.")
ar = 1234.5678
print(f"Ár: {ar:.2f} Ft")
print(f"Ár: {ar:.0f} Ft")
f"…"az f betű kapcsolja be a behelyettesítést{kor + 5}tetszőleges kifejezés állhat benne{ar:.2f}formázás: 2 tizedesjegyre kerekítve
Ha lemarad az f, nincs behelyettesítés: a print("{nev}") szó szerint {nev}-et ír ki.
A print() paraméterei: sep és end
A print() alapból szóközt tesz az argumentumok közé (sep=" "), és sortörést a végére (end="\n"). Mindkettő átállítható:
print("alma", "körte", "szilva", sep=", ")
print("2026", "10", "17", sep=".")
print("Betöltés", end="")
print("...", end="")
print(" kész")
Speciális karakterek
A szövegben a visszaper (\) után álló betű különleges jelentésű: \n új sor, \t tabulátor, \" idézőjel a szövegen belül, \\ maga a visszaper.
print("Első sor\nMásodik sor")
print("Név:\tDóra")
print("Kor:\t17")
print("Azt mondta: \"Szia!\"")
print('Így is lehet: "Szia!"')
Mit ír ki?
x = 7
print("x =", x, sep="")
print(f"{x} * 2 = {x * 2}")
x =7és7 * 2 = 14x = 7és7 * 2 = 14x =7és{x} * 2 = {x * 2}
A sep="" miatt az argumentumok közé nem kerül szóköz: "x =" és 7 közvetlenül egymás mellé íródik. Az f-stringben a kapcsos zárójelek helyére az értékek kerülnek, a * jel a kapcsos zárójelen kívül csak szöveg.
10. fejezet
Kódolási stílus (PEP 8)
A programot többször olvassák, mint írják. A PEP 8 néhány egyszerű szabálya sokat segít abban, hogy a kódod másoknak – és neked egy hét múlva – is érthető legyen:
Beszédes nevek
brutto_ar = netto_ar * 1.27 – nem b = n * 1.27
Szóköz a műveleti jelek körül
y = (x + 2) * 3 – nem y=(x+2)*3
snake_case
változók és függvények: kedvenc_szin
NAGYBETŰS konstans
állandónak szánt érték: AFA_KULCS = 0.27
Behúzás: 4 szóköz
A blokkok (if, for, def) belsejét 4 szóközzel kezdjük beljebb – a következő modulokban lesz rá szükség.
Egységes stílus
Egy programon belül ne keverd a stílusokat (felhasznalo_nev és felhasznaloEmail).
A behúzás a Pythonban nem csak stílus, hanem szabály is: a beljebb kezdett sorok alkotnak egy blokkot. Ha egy sor indokolatlanul beljebb kezdődik, IndentationError a vége. A 4 szóköz a megállapodás; a Tab billentyű a szerkesztőben ennyit szúr be.
11. fejezet
Python a saját gépeden
Ezen az oldalon minden a böngészőben fut, de a programjaidat előbb-utóbb a saját gépeden írod és futtatod. A menet minden programnál ugyanaz: megírod, elmented egy .py fájlba, és a Python-értelmezővel lefuttatod. A lépések VS Code-dal és Windowsszal szerepelnek; Linuxon és macOS-en a py helyett python3 a parancs.
- Van-e Python a gépen? Nyiss terminált: a Start menüben írd be, hogy Terminál (régebbi Windowson Parancssor), és kattints rá. Írd be:
py --version. Ha a válaszPython 3.…, minden rendben. Ha a parancsot nem ismeri, telepítsd a Pythont a python.org oldalról. - Mappa és fájl. Hozz létre egy mappát a programjaidnak (például
python), és nyisd meg VS Code-ban (Fájl → Mappa megnyitása…). Új fájl: Fájl → Új szövegfájl, írd bele a programot, majd Fájl → Mentés, és add neki azelso.pynevet (billentyűvel: Ctrl+S). A VS Code alapból UTF-8 kódolással ment – ez kell az ékezetes betűkhöz; az állapotsor jobb alsó részén látod. - Futtatás. A legegyszerűbb a szerkesztő jobb felső sarkában a ▷ Run Python File gomb; ehhez a VS Code Python-bővítménye kell (Bővítmények panel, keresés: Python). Terminálból is megy: Terminál → Új terminál – ez a megnyitott mappában indul –, és ott:
py elso.py. Azinput()itt a terminálban kér bemenetet; a beírt sort Enter küldi el. - Ha hiba van. A hibaüzenet utolsó sora a hiba típusa és oka, fölötte a fájl neve és a sor száma. VS Code-ban a terminálban a fájlnévre kattintva (Ctrl+kattintás) a szerkesztő arra a sorra ugrik.
C:\Users\Anna\python> py elso.py Szia, Python! Traceback (most recent call last): File "C:\Users\Anna\python\elso.py", line 3, in <module> print(nev) ^^^ NameError: name 'nev' is not defined
Itt a 3. sorban egy olyan változót írattunk ki, amely még nem kapott értéket. A hibaüzenetek angolul jelennek meg; ezen az oldalon a magyar magyarázat a segítség, a saját gépeden a típus és a sorszám alapján keresd meg a hibát. A leggyakoribbak: SyntaxError (elírás, hiányzó zárójel vagy idézőjel), NameError (nem létező név), TypeError (össze nem illő típusok, például szöveg + szám), ValueError (például int("abc")).
Ha egy program fájlt olvas (10. modul), a fájlnevet ahhoz a mappához képest keresi, ahonnan elindítottad – a fenti módon ez a VS Code-ban megnyitott mappa. A legegyszerűbb, ha az adatfájl a .py fájl mellett van.
12. fejezet
Gyakorló feladatok
Írd meg a programot a szerkesztőben, próbáld ki a Futtatás gombbal, majd kattints az Ellenőrzés gombra: a gép több bemenettel is lefuttatja, és összeveti a kimenetet az elvárttal. A kiírt szöveg legyen pontosan olyan, mint a mintában (a kérdések szövege – az input() zárójelében – szabadon választható). A megoldásod ebben a böngészőben megmarad.
Névjegy
Írj programot, amely pontosan ezt a három sort írja ki:
Kovács Dóra Python-tanuló -----------
A harmadik sor 11 kötőjelből áll – írd meg a szövegismétlés (*) segítségével.
# Írd ide a megoldásod!
print("Kovács Dóra")
print("Python-tanuló")
print("-" * 11)
Tipp
A "-" * 11 tizenegy kötőjelből álló szöveget ad. Ezt add át a print()-nek.
Köszönés
Kérd be a felhasználó nevét, és köszönj neki így:
Hogy hívnak? Anna
Szia, Anna! Örülök, hogy itt vagy.
nev = input("Hogy hívnak? ")
nev = input("Hogy hívnak? ")
print(f"Szia, {nev}! Örülök, hogy itt vagy.")
Tipp
Ha a print()-nek vesszővel adod át a nevet, szóköz kerül elé és mögé is – a ! elé viszont nem kell szóköz. Használj f-stringet: f"Szia, {nev}! …"
Jövőre
Kérd be a felhasználó életkorát (egész szám), és írd ki, hány éves lesz jövőre:
Hány éves vagy? 17
Jövőre 18 éves leszel.
kor = int(input("Hány éves vagy? "))
print(f"Jövőre {kor + 1} éves leszel.")
Tipp
Az input() szöveget ad, ezért előbb alakítsd egész számmá: int(input(…)). Utána már hozzáadhatsz egyet.
Téglalap
Kérd be egy téglalap két oldalának hosszát (valós számok, centiméterben), és írd ki a kerületét és a területét két tizedesjegyre kerekítve:
a oldal (cm): 4.5 b oldal (cm): 2 Kerület: 13.00 cm Terület: 9.00 cm²
a = float(input("a oldal (cm): "))
b = float(input("b oldal (cm): "))
kerulet = 2 * (a + b)
terulet = a * b
print(f"Kerület: {kerulet:.2f} cm")
print(f"Terület: {terulet:.2f} cm²")
Tipp
Valós számhoz float(input(…)) kell. A kerület 2 * (a + b) – a zárójel fontos. Két tizedesjegy: f"{kerulet:.2f}". A ² jelet bemásolhatod a mintából.
Percből óra és perc
Kérj be egy időtartamot percben (egész szám), és írd ki órában és percben:
Hány perc? 135
135 perc = 2 óra 15 perc
perc = int(input("Hány perc? "))
ora = perc // 60
maradek = perc % 60
print(f"{perc} perc = {ora} óra {maradek} perc")
Tipp
Az órák száma: hányszor van meg a 60 a percekben (//). A maradék perc: mennyi marad (%).
Celsiusból Fahrenheit
Kérj be egy hőmérsékletet Celsius-fokban (valós szám), és váltsd át Fahrenheitre a F = C · 9 / 5 + 32 képlettel. Mindkét értéket egy tizedesjegyre írd ki:
Hőmérséklet (°C): 21.5
21.5 °C = 70.7 °F
c = float(input("Hőmérséklet (°C): "))
f = c * 9 / 5 + 32
print(f"{c:.1f} °C = {f:.1f} °F")
Tipp
Mindkét értéket egy tizedesre formázd: {c:.1f} és {f:.1f}. A 0 °C így 0.0 °C alakban jelenik meg.
Háromjegyű szám számjegyei
Kérj be egy háromjegyű pozitív egész számot, és írd ki a számjegyeit, majd a számjegyek összegét. Szövegműveletet ne használj – csak // és % műveletet.
Háromjegyű szám: 472
Számjegyek: 4 7 2
Összegük: 13
szam = int(input("Háromjegyű szám: "))
szazas = szam // 100
tizes = szam // 10 % 10
egyes = szam % 10
print("Számjegyek:", szazas, tizes, egyes)
print("Összegük:", szazas + tizes + egyes)
Tipp
Százasok: szam // 100. Egyesek: szam % 10. A tízesekhez előbb vágd le az utolsó számjegyet (szam // 10 → 47), és ennek vedd az utolsó számjegyét (% 10 → 7).
Két változó cseréje
A program beolvas két szöveget az a és a b változóba. Írd meg a hiányzó részt úgy, hogy a két változó értéke felcserélődjön, aztán a kiírás már a megcserélt értékeket mutassa. A print sorokat ne módosítsd.
a = alma b = körte a: körte b: alma
a = input("a = ")
b = input("b = ")
# Ide írd a cserét!
print("a:", a)
print("b:", b)
a = input("a = ")
b = input("b = ")
seged = a
a = b
b = seged
print("a:", a)
print("b:", b)
Tipp
Ha egyszerűen a = b-t írsz, az a régi értéke elvész. Előbb mentsd el egy segédváltozóba. (Pythonban van rövidebb út is: a, b = b, a – ezt a tuple-öknél magyarázzuk el.) Kövesd lépésenként a mintamegoldást.
13. fejezet
Összefoglalás
| Eszköz | Mire való | Példa |
|---|---|---|
print() | kiírás a konzolra (vesszővel több érték, sep, end) | print("Kor:", kor) |
# | megjegyzés, a gép nem veszi figyelembe | # magyarázat |
= | értékadás: a jobb oldal értéke a bal oldali névhez kerül | kor = kor + 1 |
int, float, str, bool | az alapvető típusok; a type() megmutatja | type(3.5) |
//, % | egészosztás és maradék | 135 // 60, 135 % 60 |
input() | beolvasás – mindig szöveget ad | int(input("Szám: ")) |
| f-string | értékek beillesztése szövegbe, formázással | f"{ar:.2f} Ft" |
Gyakorold tovább: írj programot, amely bekéri egy termék nettó árát, és kiírja a 27%-os áfát és a bruttó árat egész forintra kerekítve. Előbb számold ki fejben egy példára (1000 Ft → 270 Ft áfa, 1270 Ft bruttó), és csak utána futtasd.