Naloge
- Napiši funkcijo
tabeliraj(xs), ki izpiše tabelo z vrednostmi funkcijsin,cosintanpri x-ih iz seznama `xs.
Funkcijo bi lahko poklicali, recimo, z
tabeliraj([x / 10 for x in range(10)])
pa bi izpisala
x sin cos tan
0.0 0.0 1.0 0.0
0.1 0.09983341664682815 0.9950041652780257 0.10033467208545055
0.2 0.19866933079506122 0.9800665778412416 0.20271003550867248
0.3 0.29552020666133955 0.955336489125606 0.3093362496096232
0.4 0.3894183423086505 0.9210609940028851 0.4227932187381618
0.5 0.479425538604203 0.8775825618903728 0.5463024898437905
0.6 0.5646424733950354 0.8253356149096783 0.6841368083416923
0.7 0.644217687237691 0.7648421872844885 0.8422883804630793
0.8 0.7173560908995228 0.6967067093471655 1.029638557050364
0.9 0.7833269096274833 0.6216099682706645 1.260158217550339
Med "stolpci" so tabulatorji. Ne vznemirjaj se, če bo tvoj izpis še grši od tega tule, saj tole ne bo vaja iz oblikovanja. (Če želiš, pa se seveda lahko potrudiš.)
Spremeni svojo funkcijo tabeliraj tako, da bo sprejela še en argument, namreč seznam funkcij, ki naj jih tabelira. Poklicali jo bomo lahko tudi z, recimo,
tabeliraj(range(1, 11), [sqrt, log])
Če je f neka funkcija, izveš njeno ime z f.__name__.
Napiši funkcijo
koren(), ki vrne funkcijosqrt. Ta naloga je očitno brezzvezno trivialna, ampak vseeno. Potem pokličitabeliraj(range(1, 11), [koren(), log])
da se prepričaš, da reč deluje. Pazi, v seznamu je koren() in ne koren.
- Napiši funkcijo
dvokratnik(x)intrikratnik(x), ki vračata2 * xin3 * x.
Ali pa jih skopiraj od tu:
def dvakratnik(x):
return 2 * x
def trikratnik(x):
return 3 * x
Poženi
tabeliraj(range(1, 11), [koren(), dvakratnik])
Samo tako, za vsak slučaj.
- Napiši funkcijo
nkratnik(n), pri čemer mora bitinenak2ali3. Funkcija naj vrne bodisi funkcijodvakratnik(če jenenak2) bodisi funkcijotrikratnik, če jenenak3.
Poskusi
tabeliraj(range(1, 11), [koren(), nkratnik(2), nkratnik(3)])
Za hec prestavi funkciji
dvakratnik(x)intrikratnik(x)tako, da bosta definirani znotraj funkcijenkratnik.Spremeni funkcijo
nkratnik(n)tako, da bo sprejela poljubenn, vključno zn=-1.234. Mimogrede ukini funkcijidvakratnikintrikratnik.
Namig: tako kot v prejšnji točki bo funkcija nkratnik vračala funkcijo,
recimo ji, na primer, kratnik(x), ki pa bo definirana znotraj nkratnik.
Bo tudi enako dolga (in tudi sicer skoraj enaka) kot dvakratnik, le da ne
bo množila z 2.
tabeliraj(range(1, 11), [koren(), nkratnik(-2.345)])