Featured image of post PyLadies Budapest: Start writing your own functions in Python

PyLadies Budapest: Start writing your own functions in Python

A talk on understanding and using functions in Python — what they are, why they matter, and how to start writing your own — at PyLadies Budapest.

A big thank you to the PyLadies Budapest community for the invitation.

I genuinely enjoy speaking at PyLadies meetups in Budapest. There’s something special about being in a room full of people who are just starting their Python journey — curious, motivated, and not afraid to ask questions. That kind of openness creates a positive and very productive atmosphere.

Yesterday was no different.

We focused on understanding and using functions in Python — what they are, why they matter, and how to use them confidently in practice. Since most participants were beginners, I adapted the content accordingly: clear explanations, small steps, practical examples, and plenty of room for discussion.

Toward the end, we also took a short look at how large language models can support learning Python. We talked about realistic, practical use cases — not replacing thinking, but supporting it. I shared a few reusable, well-structured prompts that can help learners ask better questions and get more useful answers while studying.

It was a great session, and I’m grateful for the engaged audience and the welcoming community.

The notebooks and presentation materials are available here. As a preview, I’ve included the detailed agenda below in Hungarian.

Notebookok tartalma

01 - Már használod a beépített függvényeket

A függvény nem más, mint egy újrahasznosítható kódrészlet, amelyet egyszer megírunk, nevet adunk neki, és annyiszor hívjuk meg, ahányszor szükségünk van rá. Ez a notebook megmutatja, hogy a Python beépített függvényeit valójában már a legelső lépésektől használjuk – és hogyan fedezhetjük fel a többit is.

Témák:

  • Saját függvény létrehozása (paraméterekkel és visszatérési értékkel, illetve azok nélkül)
  • Ismerős beépített függvények: print(), sum() – ezeket már korábban is használtuk
  • Beépített függvények típusának felderítése (type())
  • Információszerzés beépített függvényekről (help(), hivatalos dokumentáció)
  • A builtins modul felfedezése (dir(builtins), help(__builtins__))
  • Haladó megközelítés: az inspect modul használata a beépített függvények és dokumentációjuk kilistázásához

02. Saját függvények létrehozása és hatókör (scope)

Ebben a notebookban lépésről lépésre haladunk: az egyszerű print()-t használó függvénytől eljutunk az alapértelmezett paraméterekig és a típusjelölésig (type hinting), végül pedig megvizsgáljuk, miért fontos tudni, hogy egy változó hol „él" – vagyis mi az a hatókör (scope).

Témák:

2.1. Saját függvények létrehozása

  • koszonj_neki() – Az első saját függvényed
  • mond_meg_hogy_paros_e() – Döntés a függvényen belül (if/else)
  • paros_e() – Visszatérési érték (return) és típusjelölés (type hint)
  • szamold_meg_a_maganhangzokat() – String bejárás és számláló
  • ugorj_a_listaban() – Alapértelmezett paraméterek
  • Típusjelölés: hasznos, de nem kötelező

2.2. Változók hatóköre (scope) és a LEGB szabály

  • Bevezető probléma: miért nem működik?
  • Mi az a hatókör?
  • A LEGB szabály – Hol keresi a Python a változókat?
    • Lokális, Enclosing (befoglaló), Globális, Beépített hatókör
  • LEGB összefoglaló

A notebook végén gyakorló feladatokat és megoldásokat is találsz mindkét témakörhöz.

03 - Rekurzió. Tetszőleges számú pozícionális és név szerinti paraméter

Ebben a notebookban a függvények haladóbb használatával ismerkedünk meg: beágyazott függvényekkel, rekurzióval, valamint a rugalmas paraméterkezeléssel (*args, **kwargs).

Témák:

3.1. Függvény definiálása másik függvény törzsében

  • Belső függvények (nested function) – mikor és miért érdemes használni

3.2. Rekurzív függvények

  • Mi a rekurzió?
  • Faktoriális számítása rekurzívan
  • Fibonacci-számok rekurzív és iteratív megközelítéssel
  • Gyakorló feladatok

3.3. Iterálható objektumok kicsomagolása (unpacking)

  • Tuple és lista kicsomagolása változókba
  • A * operátor használata kicsomagoláshoz

3.4. Változó számú pozicionális paraméter (*args)

  • Tetszőleges számú argumentum fogadása
  • Gyakorlati példák

3.5. Változó számú név szerinti paraméter (**kwargs)

  • Kulcsszavas argumentumok dinamikus kezelése
  • *args és **kwargs kombinálása

Bónusz: AI-asszisztált tanulás

  • A prompts/ mappában találsz prompt sablonokat, amelyekkel hatékonyabban tanulhatsz Pythont nagy nyelvi modellek és ágensek (pl. ChatGPT, Claude) segítségével
Built with Hugo
Theme Stack designed by Jimmy