Naloge: Še malo igranja s funkcijami (nadaljevanje od prejšnjič)
- Napiši funkcijo zaokrozena3(f), ki kot argument prejme poljubno funkcijof(x)(na primersqrtalisin), in vrne funkcijo, ki vrača isti rezultat kotf(x), zaokrožen na tri decimalke. Uporabiš lahko funkcijoround(x, n), ki zaokroži podanixnandecimalk.
Podobno kot v prejšnji nalogi boš definiral funkcijo znotraj funkcije.
"Notranja" funkcija bo poklicala f in njen rezultat zaokrožila na tri
decimalke.
Klic
tabeliraj(range(1, 11), [zaokrozena3(sqrt)])
mora izpisati
x    krneki
1    1.0
2    1.414
3    1.732
4    2.0
5    2.236
6    2.449
7    2.646
8    2.828
9    3.0
10   3.162
Ignoriraj prvo vrstico, imena, ki bodo pač ... kr neki.
- Napiši funkcijo - poziralka, ki prejme poljubno število argumentov, vključno s poimenovanimi argumenti ... in vrne 42.
- Napiši funkcijo - poklici(f, ...), ki prejme funkcijo in poljubno število poljubnih argumentov. Funkcija naj pokliče to funkcijo s temi argumenti in vrne njen rezultat. Če torej pokličemo- poklici(log, 16, 2)naj funkcija vrne enak rezultat, kot če bi poklicali- log(16, 2).
- (težja) Če se že dolgočasiš, preberi kaj o dekoratorjih v Pythonu in spremeni - zaokrozena3v dekorator (ali pa ga le uporabi - morda ga ni potrebno spreminjati).
- (začetek težje) Napiši funkcijo - zaokrozena(f, k), ki dela podobno reč kot- zaokrozena3(f), vendar povemo, na koliko decimalk naj zaokroža.
Poskusi
tabeliraj(range(1, 11), [zaokrozena(sqrt, 1), zaokrozena(sqrt, 5)])
naj izpiše
x    krneki   krneki
1    1.0      1.0
2    1.4      1.41421
3    1.7      1.73205
4    2.0      2.0
5    2.2      2.23607
6    2.4      2.44949
7    2.6      2.64575
8    2.8      2.82843
9    3.0      3.0
10   3.2      3.16228
- (veliko težja) Spremeni zaokrozenav dekorator.