Functions

Ús de funcions

  • Funcions predefinides:

  • Crida d’una funció:

    nom_de_la_funció(argument_1, argument_2, ...)
    
    • Arguments: dades que reben les funcions a la crida a partir de les quals calculen el resultat.

    • Els arguments són expressions: composició de funcions.

  • Funcions d’un mòdul: math.

    • Importar amb from:

      >>> from math import sin, pi
      
      >>> r = sin(pi/2)
      >>> print(r)
      1.0
      
    • Importar amb import:

      >>> import math
      
      >>> r = math.sin(math.pi/2)
      >>> print(r)
      1.0
      
    • Llista dels noms definits: dir().

Definició

  • Una funció de python no sempre és una funció matemàtica, però normalment ho és.

  • Definició:

    def nom_de_la_funció(llista_de_paràmetres): # capçalera
        sentències                              # cos
        return expressió                        # resultat
    
  • El cos és un bloc.

  • El bloc s’escriu sagnat respecte de la capçalera.

  • Els paràmetres són noms.

Flux d’execució

  • L’execució d’un programa és seqüencial: una sentència rere l’altra.

  • Les definicions de funcions no alteren el flux d’execució.

  • Les crides a funcions l’alteren fent que l’execució continuï per la primera sentència del cos de la funció. Després d’executar la darrera sentència del cos, torna al punt de la crida i continua seqüencialment.

  • Online Python Tutor: recta.

Paràmetres i variables locals

  • Paràmetres: variables que reben el valor dels arguments de la crida.

  • La llista de paràmetres forma part de la capçalera de la definició de la funció.

  • Al cos de la funció es poden crear variables (locals).

  • Tant els paràmetres com les variables són locals: només existeixen en el cos de la funció.

  • Pila d’execuxió (stack diagram), bloc d’activació (frame) i traça de la pila (traceback o stack trace).

  • Variables temporals.

  • Online Python Tutor: recta.

Sentència return

  • Sintaxi:

    return expressió
    
  • Què succeeix si oblidem el return o oblidem l’expressió: la funció retorna el valor None de tipus Nonetype.

  • return i codi inassolible (dead code).

  • Online Python Tutor: oblit.

  • Funcions que retornen més d’un resultat:

    return exp1, exp2, ..., expN
    

Desenvolupament incremental

Composició de funcions

Tipus funció

  • El tipus funció.

  • Funcions com a arguments.

  • Documentació d’una funció: docstring.

  • String amb triple cometa.

Programació amb estil

Exercicis