Funcions ======== Conceptes ~~~~~~~~~ - :term:`funció` - :term:`funció predefinida`: :py:func:`abs`, :py:func:`max`, :py:func:`min`, :py:func:`round` - funció de conversió: :py:class:`float`, :py:class:`int` - :term:`crida` a funció, :term:`arguments` - :term:`mòdul`, :term:`importació` (``import``, ``from/import``), mòdul :mod:`math` - :term:`definició d'una funció`: :term:`capçalera`, :term:`paràmetre`, :term:`cos` - :term:`sentència` ``return``, retorn de més d'un valor - :term:`flux d'execució` de la crida a funcions - :term:`àmbit de visibilitat`, :term:`variable local` - crida entre funcions - :term:`objecte` ``None``, :term:`tipus` :class:`NoneType` - funció booleana - tipus funció (:class:`function`), funcions com a arguments/paràmetres Exemples ~~~~~~~~ .. code-block:: pycon :caption: Crida a funcions predefinides. >>> abs(3) # valor absolut 3 >>> abs(-3) 3 >>> round(3.52359,4) # arrodoniment 3.5236 >>> max(5,3,1) # màxim 5 >>> min(5,3,1) # mínim 1 >>> int('4') # conversió a int 4 >>> int(3.52) 3 >>> float('3.66') # conversió a float 3.66 >>> float(4) 4.0 .. code-block:: python3 :caption: Definició de funcions. def area_triangle(base,altura): area = base*altura/2 return area def quoc_res(num, den): return num/den, num%den .. code-block:: pycon :caption: Crida de funcions. >>> a = area_triangle(3, 4) >>> a 6.0 >>> n, d = quoc_res(34, 3) # 34 == 3*n + d >>> n 11 >>> d 1 .. code-block:: python3 :caption: Funció booleana def es_parell(num): return num % 2 == 0 .. code-block:: python3 :caption: Crida entre funcions def area(amplada, altura): return amplada * altura def pintura_total(amp, alt, num_parets, m2_litre): area = area(amp, alt) * num_parets return area/m2_litre .. code-block:: python3 :caption: Funció com a paràmetre def f(x): return x**3 - 6*x def func_positiva(funció,punt): fx = funció(punt) return fx > 0 .. code-block:: pycon :caption: Importació de mòduls. >>> import math >>> math.sqrt(4) 2.0 >>> math.cos(math.pi) -1.0 >>> from math import sin, pi >>> sin(pi/2) 1.0 Exercicis del tema ~~~~~~~~~~~~~~~~~~ .. toctree:: :glob: :maxdepth: 1 */index Referències ~~~~~~~~~~~ - Capítol :doc:`toni:funcions/index` de :doc:`toni:index` .. - Capítols 3 i 5 del llibre `Introducció a la programació `__ - Capítols :doc:`howto:functions` i :doc:`howto:fruitful_functions` del llibre :doc:`howto:index`