Informatika2-2016/Gyakorlat10Megold
A MathWikiből
(Változatok közti eltérés)
(→Foci, újból) |
|||
79. sor: | 79. sor: | ||
* Számoljuk ki, hogy hány gólt lőtt és hány gólt kapott egy adott csapat eddig. Az eredményt tároljuk el {"csapat":{"Goals Scored":lőtt, "Goals Conceded":kapott}} formában, azaz szótárak szótáraként! | * Számoljuk ki, hogy hány gólt lőtt és hány gólt kapott egy adott csapat eddig. Az eredményt tároljuk el {"csapat":{"Goals Scored":lőtt, "Goals Conceded":kapott}} formában, azaz szótárak szótáraként! | ||
* Számítsuk ki, hogy hány pontot szerzett egy csapat (győzelem 3, döntetlen 1, vereség 0 pont). Bővítsük az eddigi adatainkat egy {"Points":pont} rekorddal! | * Számítsuk ki, hogy hány pontot szerzett egy csapat (győzelem 3, döntetlen 1, vereség 0 pont). Bővítsük az eddigi adatainkat egy {"Points":pont} rekorddal! | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
A lap 2016. május 16., 13:28-kori változata
Tartalomjegyzék |
Feladatok
Ma is a Spyderben fogunk dolgozni. Viszont megtanuljuk, hogyan kell programozni, mint a nagyok. Ehhez szükség lesz a Konsole-ra is. Ha kész egy fáljunk, mentsük el, keressük ki a helyét a Konsole-ban, majd a python script.py módon tudjuk futtatni.
Bevezető
- Írjunk egy write_to_file.py nevű scriptet, ami két poziciónális paramétert kap: az első a fájl neve, a másik pedig a szó, amit tároljon el a fájlban! Figyeljünk arra, hogy az első paraméter mindig a script neve!
import sys filename = sys.argv[1] word = sys.argv[2] with open(filename, "w") as f: f.write(word)
vagy
import sys filename = sys.argv[1] word = sys.argv[2] f = open(filename, "w") f.write(word) f.close()
futtatás:
python write_to_file.py kutya.txt kuty
- Módosítsuk úgy, hogy tetszőlegesen sok szót meg tudjunk adni a fájl után, ezeket továbbra is írja a fájlba, vesszővel elválasztva!
import sys filename = sys.argv[1] with open(filename, "w") as f: f.write(",".join(sys.argv[2:]))
vagy
import sys filename = sys.argv[1] with open(filename, "w") as f: s = "" for word in sys.argv[2:]: s += word + "," f.write(s[:-1])
futtatás:
python write_to_file.py kutya.txt kuty macs sajt
- Legyen egy opcionális --delimiter, vagy röviden -d paraméterünk, amivel az elválasztójelet tudjuk megváltoztatni (vessző helyett tetszőleges).
(Lehet erre volt egyszerûbb megoldás...de nem emlékszem, az is lehet, hogy kihagytuk.)
import argparse parser = argparse.ArgumentParser() parser.add_argument("-f", "--filename", action="store", type=str) parser.add_argument("-w", "--words", action="store", type=str) parser.add_argument("-d", "--delimiter", action="store", type=str, default=',') args = parser.parse_args() with open(args.filename, "w") as f: words = args.words.split() f.write(args.delimiter.join(words))
futtatás:
python write_to_file.py -d . -f kutya.txt -w "kuty macs eger"
Foci, újból
Ponttáblázat
Töltsük le a data fájlunkat - Ez ugyanaz, amiből alőadáson dolgoztunk. Nyissunk meg egy új fájlt, legyen a neve tables.py és mentsük el az E0.csv mellé!
- Olvassuk be a tartalmát a csv.DictReader-rel szótárakba! Ez könnyű, volt előadáson.
- Módosítsuk, hogy fájl nevét a --file vagy a -f argumentumon keresztül kérjük el és parancssoron olvassuk be!
- Tároljuk el egy listában a csapatok neveit, minden csapatét egyszer!
Most ki fogjuk számolni az idény ponttáblázatát, persze lépésenként haladunk.
- Számoljuk ki, hogy hány gólt lőtt és hány gólt kapott egy adott csapat eddig. Az eredményt tároljuk el {"csapat":{"Goals Scored":lőtt, "Goals Conceded":kapott}} formában, azaz szótárak szótáraként!
- Számítsuk ki, hogy hány pontot szerzett egy csapat (győzelem 3, döntetlen 1, vereség 0 pont). Bővítsük az eddigi adatainkat egy {"Points":pont} rekorddal!