# Autor: Stanislav Geidl # C2184 Uvod do programovani v Pythonu # Domaci ukol 06 """ # Jak pracovat s timto ukolem: Dle zadani dopiste funkcionalitu k jednotlivym funkcem. # Jak funguje testovani? Kazda funkce obsahuje dokumentaci s doctesty. """ # def fce(a): # """ # dokumentace zde # """ """ V teto dokumentaci je obsazen popis funkcionality dane funkce a pripadne vstupni promenne a jejich vyznam. Dale tato dokumentace obsahuje testovani: volani dane funkce s konkretnim parametrem >>> fce(1) # pote nasleduje ocekavana hodnota 2 Vice google: python doctest """ import math # NASLEDUJE ukazka def fce(a): """" Funkce fce vrati a+1. doctest zkusi pouzit a=1 a bude ocekavat jako vysledek 2 >>> fce(1) 2 Tedka zkusi 2 a bude ocekavat 3. >>> fce(2) 3 """ return a+1 def custom_sum(a, b): """ Funkce custom_sum() vrati soucet dvou parametru a, b nebo 0, pokud je soucet zaporny. Parametry a, b jsou cela cisla (integer). >>> custom_sum(5, 10) 15 >>> custom_sum(-5, 2) 0 """ return def min_abs(list): """ Funkce min_abs() vrati ze zadaneho listu nejmensi absolutni hodnotu. >>> min_abs([-5, -2, 3, 8]) 2 >>> min_abs([-10, 1+1j, 2]) 1.4142135623730951 """ return def remove_unique(list): """ Funkce remove_unique odstrani ze zadaneho listu unikatni hodnoty a vrati novy list. >>> remove_unique([1, 1, 2, 3]) [1, 1] >>> remove_unique([2, 3, 4, 3, 4, 8, 9, 0, 3, 9, 8]) [3, 4, 3, 4, 8, 9, 3, 9, 8] """ return def weighted_mean(list, weight): """ Funkce weighted_mean pocita vazeny prumer ze zadaneho listu, tak ze prvni prvek je do prumeru zapocitan s vahou weight. Pro list [1, 2, 3] a weight 2 to znamena, ze 1 je zapocitana dvakrat a pocet prvku je tedy 4. >>> weighted_mean([1, 2, 3], 2) 1.75 >>> weighted_mean([2.3, 5.6, 1.2], 5) 2.6142857142857143 """ return def goto(list, position): """ Funkce goto prejde na zadanou pozici position a prochazene prvky umisti na konec. Tato funkce pocita pozice od 1. >>> goto([1, 2, 3, 4, 5], 4) [4, 5, 1, 2, 3] >>> goto(['A', 'B', 'Q', 'Z'], 3) ['Q', 'Z', 'A', 'B'] """ return def distance(a, b): """ Funkce distance spocita Euklidovskou vzdalenost pro 2 body v n-rozmernem prostoru definovane pomoci listu a, b. distace = sqrt((a1-b1)**2+(a2-b2)**2+...+(an-bn)**2) >>> distance([1,2,3],[2,4,5]) 3.0 >>> distance([12.6, 20.6, 3.3, 4.6], [2.8, 4.5, 5.9, 10.8]) 20.011246837716037 """ return def split_list(l, sep): """ Funkce split_list rozdeli vstupni list na jednotlive podlisty na zaklade zadaneho oddelovace. >>> split_list([1, 2, 3, 1, 2, 3], 2) [[1], [3, 1], [3]] >>> split_list(['a', 'b', 'c', 'd', 'f'], 'c') [['a', 'b'], ['d', 'f']] >>> split_list(['abc', 0, 'ghd', 0, 'gws', 0], 0) [['abc'], ['ghd'], ['gws']] >>> split_list([False, "AATGCT", True, True, "GTAACT", False, True], 0) [['AATGCT', True, True, 'GTAACT'], [True]] """ return def try_parse(string): """ Funkce try_parse prevedene zadany text na cele cislo a bude ignorovat neciselne znaky na konci vstupniho parametru. >>> try_parse("2.5a") 2 >>> try_parse("123hp7") 123 >>> try_parse("5@") 5 >>> try_parse("6.3e-9") 6 >>> try_parse("") 0 >>> try_parse("abc") 0 """ return import doctest doctest.testmod()