1. Napiši funkcijo tabeliraj(xs), ki izpiše tabelo z vrednostmi funkcij sin, cos in tan 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š.)

  1. 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__.

  1. Napiši funkcijo koren(), ki vrne funkcijo sqrt. Ta naloga je očitno brezzvezno trivialna, ampak vseeno. Potem pokliči

    tabeliraj(range(1, 11), [koren(), log])

da se prepričaš, da reč deluje. Pazi, v seznamu je koren() in ne koren.

  1. Napiši funkcijo dvokratnik(x) in trikratnik(x), ki vračata 2 * x in 3 * 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.

  1. Napiši funkcijo nkratnik(n), pri čemer mora biti n enak 2 ali 3. Funkcija naj vrne bodisi funkcijo dvakratnik (če je n enak 2) bodisi funkcijo trikratnik, če je n enak 3.

Poskusi

tabeliraj(range(1, 11), [koren(), nkratnik(2), nkratnik(3)])
  1. Za hec prestavi funkciji dvakratnik(x) in trikratnik(x) tako, da bosta definirani znotraj funkcije nkratnik.

  2. Spremeni funkcijo nkratnik(n) tako, da bo sprejela poljuben n, vključno z n=-1.234. Mimogrede ukini funkciji dvakratnik in trikratnik.

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)])
Zadnja sprememba: nedelja, 3. april 2016, 12.44