I.
, string I.
II.
(replace, find, count, lower, stb), feltételek (if, elif, else)II.
, listák, join és split (string listává illetve fordítvI.
II.
, numpyI.
bevezetőpyqt
és pyqtgraph
segítségévelJSON
, XML
, YAML
Python bevezetés, Python 2 vs Python 3, IDE, egyszerű matematika, változók, szintaxis, és logika, ciklusok I.
, string I.
01/simpleMath.py
- link2018: 100.00 Ft van a bankban, 1.1-es kamattal
2019: 110.00 Ft van a bankban, 1.1-es kamattal
2020: 121.00 Ft van a bankban, 1.1-es kamattal
2021: 133.10 Ft van a bankban, 1.1-es kamattal
2022: 146.41 Ft van a bankban, 1.1-es kamattal
2023: 161.05 Ft van a bankban, 1.1-es kamattal
01/bank.py
- linkString II.
(replace, find, count, lower, stb), feltételek (if, elif, else)
02/fizzbuzz.py
- link"@shannonturner"
majd valósítsuk meg a következő funkciókat:
My github handle is @shannonturner
My first name is shannon
My last name is turner
My last name is turner
My twitter handle is NOT @shannon
My last name is turner
My first name is shannon
02/slicing.py
- link (c) Shannon TurnerGéza, kék az ég
.02/palindrom.py
- linkA
betűkből, például:
Kérem a sorok számát: 12
A 1
A A 2
A A A 3
A A A A 4
A A A A A 5
A A A A A A 6
A A A A A A A 7
A A A A A A A A 8
A A A A A A A A A 9
A A A A A A A A A A 10
A A A A A A A A A A A 11
A A A A A A A A A A A A 12
02/piramis.py
- linkSzéchenyi István Egyetem, Győr
szöveget jelzi ki, soronként bővülő karakterszámmal:
S
Sz
Szé
Széc
Széch
Széche
Széchen
Szécheny
Széchenyi
Széchenyi
Széchenyi I
Széchenyi Is
Széchenyi Ist
Széchenyi Istv
Széchenyi Istvá
Széchenyi István
Széchenyi István
Széchenyi István E
Széchenyi István Eg
Széchenyi István Egy
Széchenyi István Egye
Széchenyi István Egyet
Széchenyi István Egyete
Széchenyi István Egyetem
Széchenyi István Egyetem,
Széchenyi István Egyetem,
Széchenyi István Egyetem, G
Széchenyi István Egyetem, Gy
Széchenyi István Egyetem, Győ
Széchenyi István Egyetem, Győr
02/szechenyi.py
- linkCiklusok II.
, listák, join és split (string listává illetve fordítva)
torpok = ['Tudor', 'Vidor', 'Szende', 'Szundi', 'Hapci', 'Kuka', 'Morgó']
weasleyk = ['Bill', 'Charlie', 'Percy', 'Fred', 'George', 'Ron', 'Ginny']
zsirafok = ["Abigél", "Benő", "Zsebi"]
A fentihez hasonlóan állítsd elő az alábbiakat:
"Percy"
["Fred", "George"]
["Bill", "Charlie", "Percy", "Fred"]
"arlie"
"Gin"
a = [10,20,30,20,10,50,60,40,80,50,40]
03/duplum-torol.py
- linka = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
03/kisebb-mint.py
- linklist = [1, 3, 5, 2, 4, 8, 0]
03/legnagyobb-szam.py
- linklist1 = [1, 2, 3, 4, "Alma", "Korte", "Szilva", "Barack"]
list2 = [1, 2, "Korte"]
03/lista-kulonbseg.py
- link03/split.py
- linkFájlok, flagek (r, w, b, +), szöveges formátumok, csv, matplotlib I.
04/moplot.py
- linkmohely.csv
fájlból, majd megjeleníti azokatfok:perc.századperc
-ből a fok + (perc + (század / 60)) / 60
képlettel lehet decimális értéket számolni47:41.28
, ez decimálisan: 47.691
mohely.csv
tartalma nagyjából így néz ki:
Név;KeletiHossz;ÉszakiSzél
Aba;18:31.49;47:02.06
Abádszalók;20:35.94;47:28.48
Abaliget;18:07.09;46:08.63
...
Zsujta;21:16.80;48:30.04
Zsurk;22:13.40;48:23.93
scatter
plottal, ami a népesség arányában jelenít meg különböző méretű köröketmonepesseg.csv
-ből olvassa be, ez csak a legnagyobb 88 települést tartalmazzamonepesseg.csv
tartalma nagyjából így néz ki:
Budapest;1752704
Debrecen;201981
Szeged;161137
Miskolc;157177
Pécs;144675
Györ;129301
...
Tapolca;15232
Balassagyarmat;15058
04/moscatter.py
- linkHasznos külső library-k: matplotlib II.
, numpy
Monte-Carlo integrálás felhasználásával közelítsük a PI értékét.
A sík [0;1]x[0;1] tartományán belül vegyünk fel egyenletes eloszlás mellett véletlenszerű pontokat. Nézzük meg, hogy a felvett koordináták közül melyek esnek az origó középpontú, 1 sugarú negyedkör belsejébe. A körcikkbe eső pontok és az összes felvett pont arányával súlyozott [0;1]x[0;1] síkrészlet területe a PI/4 értékét fogja közelíteni. A Közelítés annál pontosabb, minél több véletlenszerű pontot veszünk fel.
Vizsgáljuk meg az eredményt több különböző koordináta darabszám mellett. Pl 10, 100, 1000, 10000, 100000, és a különböző eredményeket ábrázoljuk pont diagramon.
Vizsgáljuk meg, hogy minden pont darabszám esetén több mérést végezve, hogyan alakul a mérések pontatlansága. Ábrázoljuk pont diagramon a méréseket.
Numerikus deriválási módszer segítségével nézzük meg, hogy egy diszkrét függvénynek hol vannak a lokális maximum és minimum pontjai.
Egy F függvény esetén az F(x) pontban a derivált értékét közelítsük az F’(x) = F(x-1) - F(x+1) értékkel. Ügyeljünk rá, hogy a függvény széleinél már nem lesznek minden irányban szomszédos értékek. A derivált függvényt és az eredeti függvényt jelenítsük meg pont diagram segítségével. Megfigyelhető, hogy a maximum és minimum helyek ott vannak, ahol a derivált metszi a vízszintes tengelyt.
Dict, kivételkezelés (try / except)
Olvassuk be “kézzel” a Pokemon.csv fájlt és a pokémonok adatait tároljuk el olyan listába, ahol kulcs-érték párokkal rögzítjük az értékeket.
Diagram segítségével hasonlítsuk össze a legendás és nem legendás pokémonok támadási és védekezési erejét.
Készítsünk tuple-t, mely tartalmazza azon pokémonok nevét, amelyek elsődleges típusa a víz és gyorsasági értéke legalább 100 és maximum 150. Jelenítsük meg a kiválasztott pokémonok neveit, szóközzel elválasztva.
Kulcs-érték párba rendezve tároljuk el a pokémonok neveit (érték) a pokémonok elsődleges típusa szerint (kulcs). Ábrázoljuk oszlopdiagram segítségével, hogy az egyes típusokba hány pokémon tartozik.
Megoldás: pokemon.py
- link
Így nézzen ki a plot:
Függvények, pár további hasznos library (import from … import … as szintaktika, time, random, math, regex (regular expressions), os, sys, json)
Python: osztályok, objektum orientált programozás
Készítsen Python osztályt háromszög tárolására. Az osztály kezelje a háromszöget oldalhosszai alapján. Legyen lehetőség lekérdezni a háromszög kerületét, területét, szerkeszthetőségét és a háromszögbe írható kör sugarát.
Készítsen Python osztályt római számok kezelésére. Az osztály példányosítás során várjon egy arab (egész) számot. Belső változókban tárolja az eredeti arab számot és a római megfelelőjét. Gondoskodjon róla, hogy ha egy római számot paraméterül adunk egy print metódusnak, akkor a kimeneten a római szám jelenjen meg. Valósítsa meg a 4 alapvető aritmetikai műveletet a római számok esetén.
point2d.py
nevű fájlban kezdjük el az osztály kódjának elkészítését.08/point2d.py
- link (c) Siki ZoltánRaspberry Pi: Python GPIO
SZE
karaktereit egymás után kis szünettel, led mátrixra.character_display.py
- link
colour_cycle.py
- link
yaw
függőleges tengelyen történő elfordulást.orientation.py
- link
yaw
érttéket jelezzük ki, csak most plot
segítségével.orientation_plt.py
- link
text_scroll.py
- link
ip_display.py
- linkOpenCV és képfeldolgozás I.
Olvassunk be pénzekről készült képeket, és számoljuk meg, hány darab pénzérme található az egyes képeken.
Megoldás: cv_penzermek.py
- link / cv_penzermek.ipynb
- link / link2
Így nézzen ki a plot:
Olvassunk be Waldo képét és a mintát, majd keressük meg ratja Waldot.
Tipp: használjuk az OpenCV matchTemplate
függvényét.
Megoldás: waldo.py
- link
Így nézzen ki a plot:
GUI, grafikus felhasználói felület készítése pyqt
és pyqtgraph
segítségével.
Párhuzamos programozás
Serialization (szerializálás): JSON
, XML
, YAML