Programujte samostatně a ptejte se cvičícího. Snažte se o eleganci. Rozmyslete si trochu řešení předem, třeba na papír.
MyMatrix
, která dostává jeden nepovinný vstupní argument reprezentující matici (2D list).
MyMatrix
metodami save(self, filename)
a load(self, filename)
:
save
uloží prvky matice do textového souboru se zadaným jménem; na každém řádku bude jeden řádek matice a jeho prvky budou oddělené mezerou.
load
načte z textového souboru se zadaným jménem uložená čísla a udělá z nich prvky matice.
>>> a = MyMatrix([[1, 2, 3], [2, 3, 4]]) >>> a.save('matrix.txt') >>> b = MyMatrix() >>> b.load('matrix.txt') >>> a.get_matrix() == b.get_matrix() True
Nápověda:
split
.>>> s = '1,2,3,4' >>> l = s.split(',') >>> print(l) ['1', '2', '3', '4']
count_chars_in_string(arg)
, která:
get
count_chars_in_file(arg)
, která
.freq
, do něhož
V Pythonu 3 (oproti Pythonu 2) je zcela přepracována práce s řetězci. Nyní jsou všechny řetězce implicitně v unicode v kódování UTF-8. (Chcete-li používat jen sekvenci bytů, musí se použít nový datový typ bytes
.) To také znamená, že při načítání textů z textových souborů je třeba specifikovat kódování, v němž je textový soubor uložen:
with open('soubor.txt', 'rt', encoding='utf-8') as f: retezec = f.read()
Argument encoding=“utf-8”
používejte vždy, a to při čtení i při zápise. Neuvedete-li ho, Python použije implicitní kódování, které je ale závislé na operačním systému. Totožný program se pak může chovat jinak na různých systémech.
Více např. zde: http://www.diveintopython3.net/files.html
Nadcházející neděli do 23:59:59 je třeba odevzdat Reversi hráče pro turnaj. specifikace
read_classification_from_file()
a write_classification_to_file()
pro čtení a zápis dat potřebných pro úlohu SPAM, viz krok 1. Nepotřebujete k tomu znát nic víc než to, co jsme na tomto cvičení procvičili. Příště si ukážeme a vysvětlíme testy, které jsou k dispozici, a ověříme si, že vaše implementace testy splňuje.