5. Feladat

Docstring és változó számú argumentumok - I.

Írjunk egy függvényt, amely egy kezdőértékből, egy kvóciensből és egy N egész számból legyárt egy N hoszú mértani sorozatot.

Az általunk megírt függvény teljesítse a következő feltételeket:

  • írjunk docstringet,
  • a függvény egy listával térjen vissza
  • ha egy bemeneti értéke van, akkor azt tekintse kezdőértéknek, a kvóciens legyen 0.5, N pedig 10.
  • ha két bemeneti érték van, akkor az első legyen a kezdőérték, a második a kvociens, N pedig 10
  • ha megvan mind a három paraméter, akkor ugyanúgy viselkedjen, mint ahogy azt az előző feladatban tette.

Megoldás

A cél az, hogy a függvény akkor is kezeljen bizonyos q és N elemeket, amikor nem kap, ehhez be kell állítani alapértelmezett értékeket. Ezt úgy tettem, hogy a függvénydeklarálás paraméterlistájában megadtam a paraméterek alapértelmezett értékét. Ezután, az elemeket egy for-ciklus segítségével gyártottam le, ami az előző elemet mindig megszorozza q értékével.

In [1]:
def mertani(x0, q=0.5, N=10):
    "visszaadja egy q kvóciensű mértani sorozat első N elemét." # Docstring
    elemek = [x0]                                               # A sorozat első eleme
    for i in range(1,N):
        elemek += [elemek[i-1]*q]                               # A sorozat i. elemét úgy kapjuk, hogy az i-1.-t megszorozzuk q-val
    return elemek

Végül néhány példával ellenőrizzük, hogy jól működik-e:

In [2]:
mertani(64)
Out[2]:
[64, 32.0, 16.0, 8.0, 4.0, 2.0, 1.0, 0.5, 0.25, 0.125]
In [3]:
mertani(1, 2)
Out[3]:
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
In [4]:
mertani(5, 0.3, 4)
Out[4]:
[5, 1.5, 0.44999999999999996, 0.13499999999999998]
In [5]:
help(mertani)
Help on function mertani in module __main__:

mertani(x0, q=0.5, N=10)
    visszaadja egy q kvóciensű mértani sorozat első N elemét.