Függvények¶
A függvények olyan kódrészletek, amelyeket újrahasználhatunk. A függvények segítségével csoportosíthatjuk a kódot, és könnyen áttekinthetővé tehetjük azt.
Builtins függvények¶
String függvények¶
lower
- Leírás: A
lower()
függvény egy adott szöveget kisbetűssé formáz. - Szintaxis:
str.lower()
- Példa:
- Leírás: A
upper
- Leírás: Az
upper()
függvény egy adott szöveget nagybetűssé formáz. - Szintaxis:
str.upper()
- Példa:
- Leírás: Az
replace
- Leírás: A
replace()
függvény egy adott karakter vagy szöveg cseréjére szolgál. - Szintaxis:
str.replace(old, new [, count])
- Példa:
- Figyelem: A
replace()
kis- és nagybetűérzékeny.
- Leírás: A
split
- Leírás: A
split()
függvény egy stringet több részre darabol, amely egy listát eredményez. - Szintaxis:
str.split(seperator [, maxsplit])
- Példa:
- Leírás: A
isalpha
- Leírás: Az
isalpha()
függvény ellenőrzi, hogy egy szövegben csak betűk találhatóak-e. - Szintaxis:
str.isalpha()
- Példa:
- Leírás: Az
isdigit
- Leírás: Az
isdigit()
függvény ellenőrzi, hogy egy szövegben csak számok találhatóak-e. - Szintaxis:
str.isdigit()
- Példa:
- Leírás: Az
Feladatok¶
Szöveg kisbetűssé alakítása
Írj egy programot, amely beolvas a felhasználótól egy szöveget, majd kiírja azt kisbetűsen!
Szöveg cseréje
Írj egy programot, amely beolvas a felhasználótól egy szöveget, majd cserélje ki az összes e
karaktert x
-re!
Szöveg darabolása
Írj egy programot, amely beolvas a felhasználótól egy szöveget, majd darabold fel vessző mentén!
Egyéb¶
abs
- Leírás: Az
abs()
függvény egy szám abszolút értékét adja vissza. - Szintaxis:
abs(number)
- Példa:
x = abs(-95) # 95
- Leírás: Az
round
- Leírás: A
round()
függvény egy számot a megadott tizedesjegyekre kerekít. - Szintaxis:
round(number, digits)
- Példa:
x = round(12.2678, 2) # 12.27
- Leírás: A
min
- Leírás: A
min()
függvény visszaadja a legkisebb értéket egy iterálható objektumban vagy megadott számok közül. - Szintaxis:
min(iterable, *args)
- Példa:
x = min(5, 10, -3, 7) # -3
- Leírás: A
max
- Leírás: A
max()
függvény visszaadja a legnagyobb értéket egy iterálható objektumban vagy megadott számok közül. - Szintaxis:
max(iterable, *args)
- Példa:
x = max(5, 10, -3, 7) # 10
- Leírás: A
sum
- Leírás: A
sum()
függvény összeadja egy iterálható objektum összes számát. - Szintaxis:
sum(iterable, start=0)
- Példa:
x = sum([1, 2, 3, 4]) # 10
- Leírás: A
len
- Leírás: A
len()
függvény visszaadja egy objektum, például lista, string vagy dictionary hosszát. - Szintaxis:
len(object)
- Példa szövegre:
x = len("Hello") # 5
- Példa listára:
x = len([1, 2, 3, 4]) # 4
- Leírás: A
Feladatok¶
Legnagyobb szám
Írj egy programot, amely beolvas két számot a felhasználótól, majd kiírja a nagyobbat!
A megoldáshoz nem használhatsz if
utasítást!
Számok átlaga
Írj egy programot, amely beolvas számokat szóközzel elválasztva a felhasználótól, majd kiírja azok átlagát 3 tizedesjegy pontossággal!
Modulok¶
A Python tartalmaz beépített függvényeket, azonban ezek száma korlátozott.
A Pythonban elérhetők úgynevezett modulok és külső könyvtárak, amelyek előre megírt függvényeket, osztályokat és egyéb eszközöket biztosítanak, amelyeket saját kódunkban felhasználhatunk.
Például a math
modul számos matematikai műveletet tartalmaz, többek között a sin
, cos
és tan
függvényeket.
Miért nincs alapból a Pythonban?
Felmerülhet a kérdés, hogy miért nem tartalmaz a Python alapértelmezetten minden speciális funkciót?
- Az interpreter méretének minimalizálása érdekében csak a legszükségesebb funkciók kerültek beépítésre.
- Speciális könyvtárak importálásával optimalizálható az erőforrás-használat és a futtatási idő.
Minden függvénykönyvtárat be kell importálni a saját kódunkban, amit az alábbi kódrészlet segítségével tudunk megtenni: import KONYVTAR
Figyelem
Fontos, hogy az importot mindig a fájl legelejére tesszük!
Math modul¶
Python math
modul legfontosabb függvényei:
math.sqrt(x)
- Négyzetgyök számítása.
- Példa:
math.sqrt(16) -> 4.0
math.pow(x, y)
- Hatványozás:
x
ay
hatványon. - Példa:
math.pow(2, 3) -> 8.0
- Hatványozás:
math.factorial(x)
- Egy szám faktoriálisának kiszámítása.
- Példa:
math.factorial(5) -> 120
math.log(x, base)
- Logaritmus számítása a megadott alap alapján (alapértelmezett: természetes log).
- Példa:
math.log(8, 2) -> 3.0
math.sin(x)
- Szinusz számítása (radiánban megadott értékre).
- Példa:
math.sin(math.pi/2) -> 1.0
math.cos(x)
- Koszinusz számítása (radiánban megadott értékre).
- Példa:
math.cos(math.pi) -> -1.0
math.tan(x)
- Tangens számítása (radiánban megadott értékre).
- Példa:
math.tan(math.pi/4) -> 1.0
math.degrees(x)
- Szög átváltása radiánról fokra.
- Példa:
math.degrees(math.pi) -> 180.0
math.radians(x)
- Szög átváltása fokról radiánra.
- Példa:
math.radians(180) -> math.pi
math.ceil(x)
- Egy számot felfelé kerekít a legközelebbi egészre.
- Példa:
math.ceil(4.2) -> 5
math.floor(x)
- Egy számot lefelé kerekít a legközelebbi egészre.
- Példa:
math.floor(4.8) -> 4
math.pi
- Az
π
konstans értéke. - Példa:
math.pi -> 3.14159...
- Az
math.e
- Az
e
konstans értéke. - Példa:
math.e -> 2.71828...
- Az
math.gcd(x, y)
- Két szám legnagyobb közös osztóját adja meg.
- Példa:
math.gcd(8, 12) -> 4
math.isqrt(x)
- Egész számként adja vissza egy szám négyzetgyökét (csak nemnegatív számoknál).
- Példa:
math.isqrt(10) -> 3
math.hypot(x, y)
- Két oldal hosszából számított átfogó (Püthagorasz-tétel).
- Példa:
math.hypot(3, 4) -> 5.0
Feladatok¶
Szám faktoriálisa
Írj egy programot, amely beolvas egy számot a felhasználótól, majd kiírja annak faktoriálisát!
Szög átváltása
Írj egy programot, amely beolvas egy szöget a felhasználótól radiánban, majd átváltja azt fokra!
Datetime modul¶
A datetime
modul segítségével dátumokkal és időpontokkal kapcsolatos műveleteket végezhetünk.
Aktuális dátum és idő lekérdezése:
Általunk megadott dátum és idő létrehozása:
strftime()¶
Dátum és idő formázása:
A strftime()
függvény segítségével a dátumot és időt tetszőleges formátumban tudjuk kiíratni.
Pédla
Kód | Leírás | Példa |
---|---|---|
%a |
Rövid hét napja | Mon |
%A |
Hosszú hét napja | Monday |
%w |
Hét napja (0-6) | 1 |
%d |
Nap (01-31) | 17 |
%b |
Rövid hónap neve | Nov |
%B |
Hosszú hónap neve | November |
%m |
Hónap (01-12) | 05 |
%y |
Rövid évszám | 21 |
%Y |
Hosszú évszám | 2021 |
%H |
Óra (00-23) | 12 |
%M |
Perc (00-59) | 30 |
%S |
Másodperc (00-59) | 00 |
%f |
Mikroszekundum (000000-999999) | 000000 |
%z |
Időzóna | +0200 |
%Z |
Időzóna neve | CEST |
%j |
Nap az évben (001-366) | 137 |
Feladatok¶
Év napja - oprendszertől
Írj egy programot, amely kiírja, hogy az év hányadik napján járunk! Ezt az információt az operációs rendszertől kérd le!
Év napja - felhasználó által
Írj egy programot, amely beolvas egy dátumot a felhasználótól, majd kiírja, hogy az év hányadik napján járunk és ez milyen napra esik!
Mit kell tenned?
- Olvasd be a dátumot a felhasználótól!
- Darabold fel az évet, hónapot és napot!
- Hozz létre egy
datetime
objektumot a megadott adatok alapján! - Számítsd ki az év napját!
- Kérd ki a nap nevét!
- Írd ki az eredményt!
Megoldás
import datetime
szoveg = input("Írj be egy dátumot (yyyy-mm-dd): ")
darabolt = szoveg.split("-")
ev = int(darabolt[0])
ho = int(darabolt[1])
nap = int(darabolt[2])
datum = datetime.datetime(ev, ho, nap)
napszam = datum.strftime("%j")
napnev = datum.strftime('%A')
print(f"Ma az év {napszam}. napja van, ami {napnev}.")
Random modul¶
A random
függvénykövtárat véletlenszámok generálásához és véletlenszerű adatok kiválasztásához használjuk.
randint
- Leírás: A
randint()
függvény egy véletlen egész számot ad aza
ésb
közötti tartományból, mindkét végpontot beleértve. - Szintaxis:
random.randint(a, b)
- Példa:
- Leírás: A
choice
- Leírás: A
choice()
függvény véletlenszerűen kiválaszt egy elemet egy iterálható objektumból, például egy listából. - Szintaxis:
random.choice(seq)
- Példa:
- Leírás: A
random
- Leírás: A
random()
függvény egy véletlen lebegőpontos számot ad 0 és 1 között. - Szintaxis:
random.random()
- Példa:
- Leírás: A
uniform
- Leírás: A
uniform()
függvény egy véletlen lebegőpontos számot ad aza
ésb
közötti tartományban. - Szintaxis:
random.uniform(a, b)
- Példa:
- Leírás: A
shuffle
- Leírás: A
shuffle()
függvény véletlenszerűen összekever egy listát. - Szintaxis:
random.shuffle(seq)
- Példa:
- Leírás: A
sample
- Leírás: A
sample()
függvény véletlenszerűen kiválasztk
darab elemet egy listából, ismétlés nélkül. - Szintaxis:
random.sample(population, k)
- Példa:
- Leírás: A
Feladatok¶
Véletlen szám generálása
Írj egy programot, amely generál egy véletlen számot 1 és 100 között!
Véletlen elemek kiválasztása
Írj egy programot, amely bekér a felhasználótól három szót, majd véletlenszerűen kiválaszt kettőt közülük!
Példa bemenet
Mit kell tenned?
- Olvass be a felhasználótól három szót!
- Hozz létre egy listát a szavakból!
- Véletlenszerűen válaszd ki két szót a listából!
- Írd ki a kiválasztott szavakat!
Saját függvények¶
Pythonban a függvények lehetővé teszik az ismétlődő kódrészletek egyszerűsítését és újrafelhasználását. A következő anyag bemutatja, hogyan hozhatunk létre és használhatunk függvényeket, egyszerű példákkal.
Függvény létrehozás¶
Pythonban egy függvény létrehozásához a def
kulcsszót használjuk. A függvény neve lehetőleg tükrözze, mit csinál a függvény.
Függvény meghívása¶
Azért mert létrehoztunk egy függvényt, még nem fog lefutni. A függvényt a nevével és zárójelekkel hívjuk meg.
Paraméterek¶
Egy függvényen belül adatokat, úgynevezett argumentumokat adhatunk át, amelyek a függvény működéséhez szükségesek. Az argumentumokat zárójelben, vesszővel elválasztva adjuk meg..
Példa:
A következő példában egy függvény található egy argumentummal (fname). A függvény meghívásakor egy keresztnevet adunk át, amely a függvényen belül a teljes név kinyomtatására szolgál:
Több paraméter¶
Egy függvény több paramétert is elfogadhat.
Alaptérmezett paraméterérték¶
Ha egy paraméternek alapértelmezett értéket adunk, akkor azt nem kötelező megadni a függvény hívásakor.
def orszag_koszontes(orszag="Magyarország"):
print(f"Üdvözlet {orszag}!")
orszag_koszontes("Svédország")
orszag_koszontes() # Az alapértelmezett értéket használja
orszag_koszontes("Németország")
Visszatérési érték (return)¶
Függvények használhatók számítások elvégzésére is, és visszaadhatják az eredményt.
def osszeadas(a, b):
muvelet = a + b
return muvelet
eredmeny = osszeadas(5, 7)
print("Az összeg:", eredmeny)
Feladatok¶
Területszámítás
Hozz létre egy terulet_szamitas
nevű függvényt, amely két paramétert (hosszúság és szélesség) fogad, és visszaadja a téglalap területét.
Köszönő üzenet
Hozz létre egy koszonto_uzenet
nevű függvényt, amely alapértelmezett paraméterként "Tanuló"-t használ, és egy üdvözlő üzenetet ír ki.
Kör kerülete
Hozz létre egy kor_kerulete
nevű függvényt, amely egy paramétert fogad (a kör sugara), és visszaadja a kör kerületét!
A kör kerületének képlete: \(2 \cdot \pi \cdot r\). Használd a matematikai függvénykönyvtár PI értékét!
Összeadás
Hozz létre egy osszead
nevű függvényt, amely két számot vár paraméterként, és visszaadja az összegüket. Ha az egyik paraméter hiányzik, az alapértelmezett értéke legyen 0.
Külső függvénykönvtárak¶
A Pythonban elérhetők külső függvénykönyvtárak, amelyek előre megírt függvényeket, osztályokat és egyéb eszközöket biztosítanak, amelyeket saját kódunkban felhasználhatunk.
Ezeket a pip
csomagkezelővel telepíthetjük, azonban ez nem képezi a szerver részét a középiskolai tananyagnak.