147 lines
5.5 KiB
Plaintext
147 lines
5.5 KiB
Plaintext
{
|
|
"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": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"[100, 90, 80, 70, 60, 50, 40, 30, 20, 10]\n",
|
|
"[2, 3]\n",
|
|
"{'alma': 10, 'körte': 20, 'barack': 30}\n"
|
|
]
|
|
},
|
|
{
|
|
"ename": "TypeError",
|
|
"evalue": "len() takes exactly one argument (0 given)",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
|
|
"Cell \u001b[0;32mIn[7], line 20\u001b[0m\n\u001b[1;32m 16\u001b[0m mydict\u001b[38;5;241m.\u001b[39mupdate({mylist[i] : \u001b[38;5;28mint\u001b[39m(mylist[i\u001b[38;5;241m+\u001b[39m\u001b[38;5;241m1\u001b[39m])})\n\u001b[1;32m 18\u001b[0m \u001b[38;5;28mprint\u001b[39m(mydict)\n\u001b[0;32m---> 20\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__doc__\u001b[39m)\n",
|
|
"\u001b[0;31mTypeError\u001b[0m: len() takes exactly one argument (0 given)"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"tomb = [i*10 for i in range(10, 0,-1)]\n",
|
|
"\n",
|
|
"print(tomb)\n",
|
|
"\n",
|
|
"\n",
|
|
"lista1 = [-1, 2, 0, 3]\n",
|
|
"lista2 = [i for i in lista1 if i > 0]\n",
|
|
"\n",
|
|
"print(lista2)\n",
|
|
"\n",
|
|
"todict = 'alma,10,körte,20,barack,30'\n",
|
|
"mylist = todict.split(',')\n",
|
|
"mydict = {}\n",
|
|
"\n",
|
|
"for i in range(0, len(mylist)-1, 2):\n",
|
|
" mydict.update({mylist[i] : int(mylist[i+1])})\n",
|
|
"\n",
|
|
"print(mydict)\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"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.12.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|