Naloge
- Napiši funkcijo
tabeliraj(xs)
, ki izpiše tabelo z vrednostmi funkcijsin
,cos
intan
pri 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 * x
in3 * 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 bitin
enak2
ali3
. Funkcija naj vrne bodisi funkcijodvakratnik
(če jen
enak2
) bodisi funkcijotrikratnik
, če jen
enak3
.
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 funkcijidvakratnik
intrikratnik
.
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)])