19. Definició de funcions

Les funcions són blocs de codi que realitzen una tasca determinada que volem executar una o diverses vegades. Les funcions també s’utilitzen per agrupar instruccions amb un nom descriptiu.

Gràcies a les funcions, podem dividir un programa llarg en molts petits blocs. Això facilita molt la programació i la lectura del codi per part d’altres persones.

Exemple de definició i trucada a una funció

def mensaje():            # Definición de la función
   print('Hola, mundo.')

mensaje()                 # Llamada a la función

La definició de la funció no fa res per si mateix. Cal ** trucar ** al `` message () `` per executar el codi dins d'aquest.

Paràmetres i arguments

Els paràmetres ** ** són les variables que es declaren entre parèntesis en la definició de la funció.

Els ** arguments ** són els valors que utilitzem per trucar a la funció. Els arguments permeten personalitzar el comportament d’una funció i poden ser de diferents tipus (boolean, números, cadenes de text, etc.).

Exemple de definició d’una funció amb un paràmetre (nom)

def saludo(nombre):
   print('Hola', nombre, '¿Qué tal estás?')

Truqueu a la funció amb dos arguments diferents ("Javier" i "Sara")

saludo('Javier')
saludo('Sara')

Resultat

Hola Javier ¿Qué tal estás?
Hola Sara ¿Qué tal estás?

Judici `` tornar ''

El judici return` s’utilitza per retornar un fet de la funció.

També es pot utilitzar per acabar la funció en aquest punt, amb un comportament similar al judici `` rupte '' d'un bucle.

Exemple de definició d’una funció amb `` return``

def suma(a, b):
    return a + b

print(suma(3, 5))
print(suma(11, 23))

Resultat

8
34

Exercicis

  1. Escriviu una funció que calculi si un número és encara o estrany i imprimeix el resultat.

    Escriviu també al programa diverses trucades a la funció amb diversos números per comprovar que funciona correctament.

    Pista

    def es_par(num):
        if num % 2 == 0:
           print(num, "es ...")
        else:
           print(num, "es ...")
    
  2. Escriviu la definició d'una funció anomenada "major (a, b)" a la qual tenim dos números com a arguments i això retorna el major dels dos.

    També escriu al programa diverses trucades a la funció amb diverses parelles de números, per demostrar que funciona correctament.

    Pista

    def mayor(a, b):
        if ... :
           return ...
        else:
           return ...
    
    print( mayor(5, 9) )
    print( mayor(20, 6) )
    print( mayor(12, 15) )
    

    Resultat

    9
    20
    15
    
  3. Escriviu la definició d’una funció que transforma els graus Celsius en graus Fahrenheit sabent que

    fahrenheit = celsius * 9.0 / 5 + 32
    

    Pista

    def fahrenheit(celsius):
        return ...
    
    print("-5ºC =", fahrenheit(-5), "ºF")
    print("22ºC =", fahrenheit(22), "ºF")
    print("40ºC =", fahrenheit(40), "ºF")
    

    Resultat

    -5ºC = 23.0 ºF
    22ºC = 71.6 ºF
    40ºC = 104.0 ºF
    
  4. Escriviu la definició d’una funció que retorna el factorial d’un número.

    El factorial és el resultat de multiplicar tots els números de 1 al número desitjat.

    Imprimeix el factorial de 5, 8 i 12.

    Pista

    def factorial(num):
        resultado = 1
        while ... :
            resultado = ...
            num = num - 1
        return resultado
    
    print("El factorial de", ..., "es igual a", factorial( ... ))
    print("El factorial de", ..., "es igual a", factorial( ... ))
    print("El factorial de", ..., "es igual a", factorial( ... ))
    

    Resultat

    El factorial de 5 es igual a 120
    El factorial de 8 es igual a 40320
    El factorial de 12 es igual a 479001600
    
  5. Escriviu la definició d’una funció que imprimeix una fila de N asteriscs a la pantalla.

    Truqueu a aquesta funció diverses vegades per imprimir un triangle d’asteriscs que comença per 1 asterisc i acaba amb 10 asteriscs.

    Pista

    def asteriscos(n):
        for i in range( ... ):
            print('*', end='')
        print()
    
    for num in range(1, 11):
        asteriscos( ... )
    
  6. Escriviu la definició d’una funció que imprimeix la taula de multiplicació d’un número.

    Utilitzeu aquesta funció per imprimir la taula de 3 i la taula de 5.

    Pista

    def tabla_mult(n):
        print("Tabla del", ...)
        for i in range(1, 11):
            print( ... ,"x", ... , "=", ... )
    
    tabla_mult(3)
    tabla_mult(5)
    

    Resultat

    Tabla del 3
    3 x 1 = 3
    3 x 2 = 6
    3 x 3 = 9
    3 x 4 = 12
    3 x 5 = 15
    3 x 6 = 18
    3 x 7 = 21
    3 x 8 = 24
    3 x 9 = 27
    3 x 10 = 30
    
    Tabla del 5
    5 x 1 = 5
    5 x 2 = 10
    5 x 3 = 15
    5 x 4 = 20
    5 x 5 = 25
    5 x 6 = 30
    5 x 7 = 35
    5 x 8 = 40
    5 x 9 = 45
    5 x 10 = 50