{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Előadás anyag\n", "Nézzük meg a 6. heti előadás anyagát tartalmazó Jupyter notebook (06_ea.ipynb) tartalmát! Futtassuk az egyes cellákat, módosítsunk, kisérletezzünk szabadon!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. feladat\n", "Készítsünk különbségsorozatot az $a_1$, ..., $a_n$ számsorozatból, ahol a különbségsorozat $i$. eleme $a_{i+1}$ - $a_i$! Pl: 2, 5, 7, 15 => 3, 2, 8" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[3, 2, 8]\n", "[3, 2, 8]\n", "[3, 2, 8]\n" ] } ], "source": [ "# A számsorozat\n", "a = [2, 5, 7, 15]\n", "\n", "# 1. megoldás (nem használva a 6. előadás dolgait))\n", "diff = []\n", "for i in range(len(a) - 1):\n", " diff.append(a[i + 1] - a[i])\n", "print(diff)\n", "\n", "# 2. megoldás (comprehension és indexelés)\n", "diff = [a[i + 1] - a[i] for i in range(len(a) - 1)]\n", "print(diff)\n", "\n", "# 3. megoldás (comprehension, unpacking, slicing és zip)\n", "diff = [x - y for x, y in zip(a[1:], a[:-1])]\n", "print(diff)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Feladatok\n", "Készítsünk programokat az alábbi feladatokra! A megoldásoknál használjuk az előadáson elhangzottakat (pl. comprehension, haladó indexelés, kicsomagolás, zip, ...)!\n", "- Állítsuk elő comprehension-nel a [100, 90, 80, 70, 60, 50, 40, 30, 20, 10] listát!\n", "- Gyűjtsük ki feltételes comprehension-nel egy számokból álló lista pozitív elemeit egy új listába! Pl. [-1, 2, 0, 3] => [2, 3] \n", "- Fordítsuk meg egy sztring karaktereinek sorrendjét haladó indexeléssel! Pl. 'abc' => 'cba'.\n", "- Készítsünk szótárat egy `KULCS_1,ÉRTÉK_1, ... KULCS_n,ÉRTÉK_n` formátumú sztringből! Pl. 'alma,10,körte,20,barack,30' => {'alma': 10, 'körte': 20, 'barack': 30} (Tipp: a sztring darabolásához használjuk a split metódust!)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Házi feladatok\n", "Készítsünk programokat az alábbi feladatokra! A megoldásoknál használjuk az előadáson elhangzottakat (pl. sum, min, max, sorted függvények)!\n", "- Egy műkorcsolyaversenyen N (>=1) versenyző indul és M (>=3) bíró pontoz. Minden versenyző minden bírótól pontosan egy db pontot kap (ami 0-tól 6-ig egy valós szám)! Ismerjük a versenyzők nevét, nemzetiségét (3 betűs sztring), és a bíróktól kapott pontjaikat. Számítsuk ki a versenyzők átlagpontjait, majd készítsünk olyan listát, amelyben a versenyzők összes adata (név, nemzetiség, pontok, átlagpont) szerepel! Minden versenyző legyen külön sorban, a pontok két tizedesjeggyel jelenjenek meg, egymás alá igazítva!\n", "- Oldjuk meg a feladatot úgy is, hogy az átlagpontba az adott versenyző legnagyobb és legkisebb pontjának egy-egy előfordulását nem számítjuk be (a bírók részrehajlását elkerülendő)!\n", "- Oldjuk meg a feladatot úgy is, hogy a lista eredménylista legyen (azaz olyan lista, amely az átlagpont szerint csökkenően rendezett)!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.3" } }, "nbformat": 4, "nbformat_minor": 2 }