Kihagyás

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

  1. lower
    • Leírás: A lower() függvény egy adott szöveget kisbetűssé formáz.
    • Szintaxis: str.lower()
    • Példa:
      1
      2
      3
      szoveg = "EZ A SZOVEG CSUPA NAGYBETU"
      kisbetus = szoveg.lower()
      print(kisbetus)  # ez a szoveg csupa nagybetu
      
  2. upper
    • Leírás: Az upper() függvény egy adott szöveget nagybetűssé formáz.
    • Szintaxis: str.upper()
    • Példa:
      1
      2
      3
      szoveg = "ez a szoveg csupa kisbetu"
      nagybetus = szoveg.upper()
      print(nagybetus)  # EZ A SZOVEG CSUPA KISBETU
      
  3. 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:
      1
      2
      3
      eredeti_szoveg = "ez egy teszt szoveg"
      csere_szoveg = eredeti_szoveg.replace("e", "x")
      print(csere_szoveg)  # xz xgy txszt szovxg
      
    • Figyelem: A replace() kis- és nagybetűérzékeny.
  4. 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:
      1
      2
      3
      nevek_szoveg = "Máté,Lajos,Dénes,István"
      nevek_lista = nevek_szoveg.split(",")
      print(nevek_lista)  # ['Máté', 'Lajos', 'Dénes', 'István']
      
  5. 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:
      1
      2
      3
      txt = "CompanyX"
      x = txt.isalpha()
      print(x)  # True
      
  6. 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:
      1
      2
      3
      txt = "50800"
      x = txt.isdigit()
      print(x)  # True
      

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!

Megoldás
szoveg = input("Írj be egy szöveget: ")
kisbetus = szoveg.lower()
print(kisbetus)

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!

Megoldás
eredeti_szoveg = input("Írj be egy szöveget: ")
csere_szoveg = eredeti_szoveg.replace("e", "x")
print(csere_szoveg)

Szöveg darabolása

Írj egy programot, amely beolvas a felhasználótól egy szöveget, majd darabold fel vessző mentén!

Megoldás
nevek_szoveg = input("Írj be egy szöveget: ")
nevek_lista = nevek_szoveg.split(",")
print(nevek_lista)

Egyéb

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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

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!

Példa
Írj be egy számot: 5
Írj be még egy számot: 10

A nagyobb szám: 10
Megoldás
szam1 = int(input("Írj be egy számot: "))
szam2 = int(input("Írj be még egy számot: "))

nagyobb = max(szam1, szam2)

print(nagyobb)
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!

Példa bemenet

Írj be számokat szóközzel elválasztva: 5 10 15 20

Az átlag: 12.500
Megoldás
szoveg = input("Írj be számokat szóközzel elválasztva: ")
darabolt = szamok.split()
szamok = [int(szam) for szam in darabolt]

osszeg = sum(szamok)
darab = len(szamok)
atlag = osszeg / darab

kerekitett = round(atlag, 3)

print(f"Az átlag: {kerekitett}")

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

Példa

1
2
3
4
import math

print( math.sqrt(25) )
print( math.cos(0.25) )

Figyelem

Fontos, hogy az importot mindig a fájl legelejére tesszük!

Math modul

Python math modul legfontosabb függvényei:

  1. math.sqrt(x)
    • Négyzetgyök számítása.
    • Példa: math.sqrt(16) -> 4.0
  2. math.pow(x, y)
    • Hatványozás: x a y hatványon.
    • Példa: math.pow(2, 3) -> 8.0
  3. math.factorial(x)
    • Egy szám faktoriálisának kiszámítása.
    • Példa: math.factorial(5) -> 120
  4. 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
  5. math.sin(x)
    • Szinusz számítása (radiánban megadott értékre).
    • Példa: math.sin(math.pi/2) -> 1.0
  6. math.cos(x)
    • Koszinusz számítása (radiánban megadott értékre).
    • Példa: math.cos(math.pi) -> -1.0
  7. math.tan(x)
    • Tangens számítása (radiánban megadott értékre).
    • Példa: math.tan(math.pi/4) -> 1.0
  8. math.degrees(x)
    • Szög átváltása radiánról fokra.
    • Példa: math.degrees(math.pi) -> 180.0
  9. math.radians(x)
    • Szög átváltása fokról radiánra.
    • Példa: math.radians(180) -> math.pi
  10. math.ceil(x)
    • Egy számot felfelé kerekít a legközelebbi egészre.
    • Példa: math.ceil(4.2) -> 5
  11. math.floor(x)
    • Egy számot lefelé kerekít a legközelebbi egészre.
    • Példa: math.floor(4.8) -> 4
  12. math.pi
    • Az π konstans értéke.
    • Példa: math.pi -> 3.14159...
  13. math.e
    • Az e konstans értéke.
    • Példa: math.e -> 2.71828...
  14. math.gcd(x, y)
    • Két szám legnagyobb közös osztóját adja meg.
    • Példa: math.gcd(8, 12) -> 4
  15. 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
  16. 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!

Példa bemenet
Írj be egy számot: 5

5! = 120
Megoldás
import math

szam = int(input("Írj be egy számot: "))
faktorialis = math.factorial(szam)
print(f"{szam}! = {faktorialis}")
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!

Példa bemenet
Írj be egy szöget radiánban: 1.5708

1.5708 rad = 90.0 fok
Megoldás
import math

radian = float(input("Írj be egy szöget radiánban: "))
fok = math.degrees(radian)
print(f"{radian} rad = {fok} fok")

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:

1
2
3
4
import datetime

dt = datetime.datetime.now()
print(now)

Általunk megadott dátum és idő létrehozása:

1
2
3
4
import datetime

dt = datetime.datetime(2021, 5, 17, 12, 30, 0)
print(dt)

strftime()

Dátum és idő formázása:

1
2
3
4
5
import datetime

dt = datetime.datetime(2021, 5, 17, 12, 30, 0)
formazott = dt.strftime("%Y")
print(formazott)

A strftime() függvény segítségével a dátumot és időt tetszőleges formátumban tudjuk kiíratni.

Pédla

1
2
3
4
5
6
import datetime

dt = datetime.datetime(2021, 5, 17, 12, 30, 0)

formazott = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formazott)
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!

Példa
Ma az év 137. napja van.
Megoldás
import datetime

datumido = datetime.datetime.now()
nap = dt.strftime("%j")
print(nap)
É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!

Példa
Írj be egy dátumot (yyyy-mm-dd): 2021-05-17

A megadott dátum az év 137. napja, ami Monday.
Mit kell tenned?
  1. Olvasd be a dátumot a felhasználótól!
  2. Darabold fel az évet, hónapot és napot!
  3. Hozz létre egy datetime objektumot a megadott adatok alapján!
  4. Számítsd ki az év napját!
  5. Kérd ki a nap nevét!
  6. Í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.

  1. randint
    • Leírás: A randint() függvény egy véletlen egész számot ad az a és b közötti tartományból, mindkét végpontot beleértve.
    • Szintaxis: random.randint(a, b)
    • Példa:
      1
      2
      3
      import random
      szam = random.randint(1, 10)
      print(szam)  # Példa: 7
      
  2. 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:
      1
      2
      3
      4
      import random
      gyumolcsok = ['alma', 'körte', 'barack']
      valasztott = random.choice(gyumolcsok)
      print(valasztott)  # Példa: barack
      
  3. 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:
      1
      2
      3
      import random
      szam = random.random()
      print(szam)  # Példa: 0.2378463492
      
  4. uniform
    • Leírás: A uniform() függvény egy véletlen lebegőpontos számot ad az a és b közötti tartományban.
    • Szintaxis: random.uniform(a, b)
    • Példa:
      1
      2
      3
      import random
      szam = random.uniform(1, 10)
      print(szam)  # Példa: 5.347839
      
  5. shuffle
    • Leírás: A shuffle() függvény véletlenszerűen összekever egy listát.
    • Szintaxis: random.shuffle(seq)
    • Példa:
      1
      2
      3
      4
      import random
      szamok = [1, 2, 3, 4, 5]
      random.shuffle(szamok)
      print(szamok)  # Példa: [3, 1, 4, 5, 2]
      
  6. sample
    • Leírás: A sample() függvény véletlenszerűen kiválaszt k darab elemet egy listából, ismétlés nélkül.
    • Szintaxis: random.sample(population, k)
    • Példa:
      1
      2
      3
      4
      import random
      szamok = [1, 2, 3, 4, 5]
      valasztott = random.sample(szamok, 2)
      print(valasztott)  # Példa: [4, 1]
      

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!

Megoldás
import random

szam = random.randint(1, 100)
print(szam)
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
Írj be egy szót (1.): alma
Írj be egy szót (2.): körte
Írj be egy szót (3.): barack

Kiválasztott szavak: ['alma', 'körte']
Mit kell tenned?
  1. Olvass be a felhasználótól három szót!
  2. Hozz létre egy listát a szavakból!
  3. Véletlenszerűen válaszd ki két szót a listából!
  4. Írd ki a kiválasztott szavakat!
Megoldás
import random

szavak = []
for i in range(1, 4):
    szo = input(f"Írj be egy szót ({i}.): ")
    szavak.append(szo)

valasztott = random.sample(szavak, 2)
print(f"Kiválasztott szavak: {valasztott}")

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.

def udvozles():
    print("Üdvözöllek a függvényben!")

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.

def udvozles():
    print("Üdvözöllek a függvényben!")


udvozles()  # Meghívja az udvozles függvényt

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:

1
2
3
4
5
6
def koszontes(nev):
    print(f"Szia {nev}!")


koszontes("Anna")
koszontes("Balázs")

Több paraméter

Egy függvény több paramétert is elfogadhat.

1
2
3
4
5
6
def teljes_nev(vezeteknev, keresztnev):
    print(f"Üdvözöllek {keresztnev} {vezeteknev}!")


teljes_nev("Kovács", "Zsófia")
teljes_nev("Nagy", "Péter")

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.

Megoldás
def terulet_szamitas(hossz, szelesseg):
    szamitas = hossz * szelesseg
    return szamitas

print("Téglalap területe:", terulet_szamitas(5, 10))
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.

Megoldás
def koszonto_uzenet(nev="Tanuló"):
    print(f"Üdvözöllek {nev}!")

koszonto_uzenet()
koszonto_uzenet("Katalin")
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!

Megoldás
import math

def kor_kerulete(sugar):
    return 2 * math.pi * sugar

print("Kör kerülete:", kor_kerulete(7))
Ö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.

Megoldás
def osszead(a=0, b=0):
    return a + b

print("Összeg (3 + 5):", osszead(3, 5))
print("Összeg (csak 10):", osszead(10))
print("Összeg (alapértelmezett):", osszead())

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.