Fullscreen
Loading...
 
Imprimir Comparte esta página

curso python basico

Funciones


Una función es un bloque de código que se piensa de manera que se pueda reutilizar muchas veces mas. Las funciones son la base de la programación modular

Definir una función en Python 3


  • Se comienza por la palabra reservada def seguida por el nombre de la funcion y entre parentecis los argumentos (si tiene) separados por comas (si aplica).
  • La primera parte del bloque se sugiere que sea la ayuda de la función, entre comillas dobles. Esto es una descripción breve de que es lo que hace la función, y de los parámetros que recibe.
  • No se debe de olvidar la indentación y los dos puntos luego del nombre y los parámetros.
  • El argumento return sirve para retornar un valor al programa que llama a la función, y es opcional(retur None).
    • Ejemplo:
      def printstr( str ):
         "Imprime la cadena de caracteres que se le pase"
         print (str)
         return

Llamando una función en python 3

Cuando se define la función, se le da un nombre, se le asignan los parámetros que va a usar, y se estructura su funcionamiento. En el momento en que se llama dicha función dentro del código es que ésta se ejecuta.
  • Ejemplo:
    # La función se define acá
    def Multip( x=0,y=0 ):
       """Se le pasan dos argumentos numéricos, x e y; y la función devuelve su producto y=0 y x=0 por defecto. 
    Ejemplo: Multip(1,3)"""
       
       return (x*y)
    
    
    # En este punto se llama a la función
    Multip(3,4)

Paso por referencia


Todas las variables en python se pasan por referencia, luego si una variable se pone como argumento en una función, ésta podrá modificar el valor de dicha variable de manera interna.

  • Ejemplo:
    # Definición de la función
    def Duplica( lista ):
       "Función que duplica los valores de una lista dada"
       print ("Valores fuera de la función ", lista)
       for i in range(len(lista))::
         lista[i]=2*lista[i]
       print ("Valores dentro de la función: ", lista)
       return
    
    # Ahora se llama a la función Duplica 
    mi_lista = [10,20,30]
    Duplica( mi_lista )
    print ("Valores fuera de la función: ", mi_lista)


Argumentos de las funciones

Se construir funciones con diferentes tipos de argumentos.
  1. Argumentos obligatorios.
  2. Argumentos keyword.
  3. Argumentos por defecto.
  4. Argumentos de longitud variable.

Argumentos obligatorios

Son los argumentos que deben de ser pasados a la función en número y orden estricto, porque de otro modo saldrá un error de sintaxis.
  • Ejemplo:
    def Cuenta( str ):
        "Cuenta el número de letras que tiene una cadena de caracteres y las imprime en orden"
    
        print ("Tamaño: ",len(str))
        n=1  
        for i in str:
            print(n,": ",i)
        return
        # ahora se llama la función
        Cuenta('Camilo')
        Cuenta()

    Al ejecutar este código se tiene la siguiente salida
    Cuenta()
    Traceback (most recent call last):
    
      File "<ipython-input-5-4da5406c0b55>", line 1, in <module>
        Cuenta()
    
    TypeError: Cuenta() missing 1 required positional argument: 'str'

Argumentos llave

Estos argumentos están relacionados con la llamada de la función. Esto permite usar algunos de los argumentos, y ponerlos en orden diferente del de la definición.
  • Ejemplo:
    # Definición de la función
    def printinfo( nombre, edad ):
       "Imprime lo que se le pase"
       print ("Nombre: ", nombre)
       print ("Age ", edad)
       return;
    
    # Se llama la función, con el orden de las entradas trocadas, pero bien identificadas con la llave.
    printinfo( edad=32, nombre="camilo" )

Argumentos por defecto

Son argumentos que tienen un valor asignado desde la definición de la función
  • Ejemplo:
    # Definición de la función
    def printinfo( nombre, edad, *sexo ):
        "Imprime lo que se le pase"
        print ("Nombre: ", nombre)
        print ("Age ", edad)
        return;
    # Se llama la función
    printinfo( edad=32, nombre="camilo" )

Argumentos de longitud variable

Hay ocasiones donde una función puede necesitar mas argumentos de los que se declaran en la definición.
  • Ejemplo:
    # Definición de la función
    def Suma( arg1=0, arg2=0 , *vartuple ):
       "Suma todas los argumentos"
       suma=arg1 + arg2
       
       for var in vartuple:
          suma=suma+var
       return suma
    
    # Aqui se usa la función Suma
    Suma( 10, 12 )
    Suma( 70, 60, 50 )

La palabra reservada return

Esta palabra se usa para terminar una función, de forma opcional se pude pasar una expresión al programa que hace el llamado (return Expresión)

Alcance (scope) de las variables

No todas las variables pueden utilizar (leer, escribir), desde cualquier punto del programa. El alcance de las variables es desde donde o en donde es accesible por el programa, y depende de en que punto de éste fue declarada.
Dependiendo del alcance se puede clasificar las variables (de python) en dos tipos:
  • Globales: Son las que se pueden ver en el cuerpo del programa o script.
  • Locales:Son las variables definidas dentro de una función, y a menos que se especifique lo contrario, no pueden ser vistas (leída o escrita) desde fuera de dicha función.
    Ejemplo:
    # Definición de la función
    def sum( arg1, arg2 ):
       # Suma los argumentos arg1 y arg2, imprime el valor de total(local), y entrega total."
       total = arg1 + arg2
       print ("Total Local : ", total)
       return total
    
    #Llamado de la función
    total=4
    print('total Global:', total)
    sum(3,4)
    print('total Global:', total)

Ejercicios: