====== Novinky v Pythonu ====== ... v jeho jednotlivých verzích, relevantní pro RPH. V RPH předepisujeme některou verzi Pythonu jako tu, na níž poběží hodnotící skripty a turnaje. Tato stránka slouží učitelům k rozhodnutí, jakou verzi nasadit, a studentům k rychlé kontrole, jestli náhodou nepoužívají nové rysy Pythonu z nějaké aktuálnější verze než je ta používaná v RPH, kvůli nimž by jejich kódy nemusely fungovat správně. Následující výčet shrnuje jen nejdůležitější změny, prakticky ignoruje pokročilejší vlastnosti Pythonu a jeho standardních knihoven. ===== Python 3.10 ===== výtah z [[https://docs.python.org/3.10/whatsnew/3.10.html|What's new in Python 3.10]] * Structural Pattern Matching: řídicí struktura ''match ... case ...'', podobná strukturám ''switch ... case ...'' např. z jazyka C, ale mocnější. * ''zip()'' může kontrolovat délku iterables a vyhodit výjimku, když se délka některého liší. ===== Python 3.9 ===== výtah z [[https://docs.python.org/3.9/whatsnew/3.9.html|What's new in Python 3.9]] * Operátory pro sjednocení dvou slovníků (''|'') a aktualizaci slovníku jiným slovníkem (''|=''). * Přidány metody ''removeprefix()'' a ''removesuffix()'' k objektům třídy ''str''. ===== Python 3.8 ===== výtah z [[https://docs.python.org/3.8/whatsnew/3.8.html|What's new in Python 3.8]] * Výrazy s přiřazením, Walrus operátor '':='' * Výhradně poziční argumenty, které nelze zadat jako keyword argument * Přidána funkce ''math.dist()'' pro výpočet Euklidovské vzdálenosti mezi body * Přidána funkce ''math.prod()'' (analogická k ''sum()'') * V modulu ''statistics'' přidány funkce ''fmean()'', ''geometric_mean()'', ''multimode()'', ''quantiles()'' a třída ''NormalDist''. ===== Python 3.7 ===== Výtah z [[https://docs.python.org/3.7/whatsnew/3.7.html|What's new in Python 3.7]] * Data classes * Slovníky zachovávají pořadí prvků, v němž byly do slovníku vloženy. ===== Python 3.6 ===== Výtah z [[https://docs.python.org/3.6/whatsnew/3.6.html|What's new in Python 3.6]] * Tzv. "f-stringy", formátované řetězcové literály. Alternativa k ''str.format()'' a k ''"%s" % var'' * Podpora pro podtržítka v numerických literálech: oddělovač tisíců, např. ''1_000_000''. * Typové anotace proměnných. ===== Python 3.5 ===== Výtah z [[https://docs.python.org/3.5/whatsnew/3.5.html|What's new in Python 3.5]] * Nový operátor pro maticové násobení, ''a @ b''. * Modul ''typing'' - podpora pro nepovinné typování.