Alexis Salas B

V 1.0

Python 05: Funciones

Temario

  • Funciones en Python
  • Definiendo una Función
  • Llamando una Función
  • Variables Locales y Globales
  • Paso por valor de referencia a objeto
  • Argumentos de Función
  • Función lambda

2

Funciones en Python

3

  • Bloque de código organizado y reutilizable.
  • Orientadas a realizar una sola acción relacionada.
  • Permiten mayor modularidad y alto grado de reutilización de código.
  • Python posee varias funciones incorporadas (print(), range(),enumerate() ...etc).
  • Podemos definir nuestras propias funciones en Python.

Las funciones son un bloque de codigo organizado y reutilizable, orientadas a realizar una sola acción relacionada. Esto nos entrega mayor modularidad dentro de un programa y un alto grado de reutilizacion de codigo.

Definiendo una función

4

  • Comienza con palabra clave def, seguido del nombre y paréntesis ( ).
  • Argumentos o parámetros van dentro del paréntesis
  • La primera declaración opcional, puede ser la documentación o docstring
  • El bloque de código comienza con dos puntos (:) y la indentación.
  • La expresión return sale de una función, opcionalmente devolviendo una expresión o variable entregada a esta palabra clave.

Llamando una función

5

Definir una funcion solo le asigna un nombre, los parametros incluidos y la estructura del bloque de codigo. Una vez definida la estructura basica, podemos ejecutarla llamandola directamente o desde otra funcion.

Variables locales y globales

6

Las variables definidas dentro de una funcion tienen un alcance local, y aquellas definidas fuera tienen un alcance global.

Esto significa que las variables locales se pueden acceder solo dentro de la funcion en la que se declaran, mientras que las variables globales se pueden acceder a traves de todo el programa y sus funciones. Cuando se llama a una funcion, las variables declaradas dentro de ella se ponen al alcance.

Paso por valor de referencias a objetos

7

  • En otros lenguajes existe el paso de parámetros por valor y por referencia.
  • Paso por valor : una función no puede modificar el valor de las variables que recibe, simplemente las afecta localmente.
  • Paso por referencia: una función obtiene acceso directo a las variables originales, permitiendo su edición afectando globalmente.
  • En cambio en python, todo es un objeto, y los parámetros siempre se pasan por referencia a ese objeto.

Implicancias: objetos mutables e inmutables

8

LA diferencia está en si el objeto es inmutable , como las tuplas, enteros ,flotantes y cadenas., o si es mutable como las listas o diccionarios.
En el ejemplo se se hace uso del método append de las listas. Un método no es mas que una funcion que pertenece a un objeto, en este caso una lista, append añade un elemento a un alista. Como se observa la variable x no conserva los cambios al salir de la función, porque los enteros son inmutables en Python. Al contrario la variable y, si conserva , porque las listas son mutables.
En resumen los valores mutables se comportan como paso por referencias, y los inmutables como paso por valor.

Argumentos de función

9

  • Argumentos requeridos
  • Argumentos nombrados o de palabra clave (keywords)
  • Argumentos por defecto
  • Argumentos de largo variable

Al definir una funcion podemos hacerlo utilizando diferentes tipos de argumentos:

Argumentos requeridos

10

Los argumentos requeridos, son argumentos pasados a la función en un orden posicional correcto. El número de argumentos al llamar la funcion debe calzar exactamente con los argumentos definidos.
Aqui se debe pasar obligatoriamente 1 argumento, de lo contrario tendremos un error de sintaxis

Argumentos nombrados

11

Los argumentos nombrados o de palabra clave estan relacionados al llamado de la funcion. Cuando se usan argumentos nombrados al llamar una funcion, se identifican los argumentos por el nombre del parametro. Esto permite saltarse argumentos o colocarlos fuera de orden, ya que el interprete de python es capaz de usar la palabra clave entregada para que coincida con los valores con parametros.

Argumentos por defecto

12

Un argumento por defecto es un argumento que asume un valor por defecto si a ese argumento no se le provee un valor al llamar la función.

Argumentos de largo variable

13

Cuando se necesita procesar una funcion para mas argumentos de los especificados inicialmente, se pueden usar argumentos de largo variable, los cuales no son nombrados en la definicion de la funcion, al contrario de los argumentos requeridos y por defecto.
Se usa un arterisco antes del nombre de la variable que contendra los valores de todos los argumentos no nombrados. En este ejemplo la tupla permanece vacia si no se especifica algun argumento adicional.

Función lambda

14

  • Son funciones anónimas que no son declaradas de la forma estándar, usando def, sino la palabra lambda
  • Pueden tomar cualquier número de argumentos, pero retornan solo un valor en forma de expresión
  • No pueden tener llamadas directas por la función print, solo aceptan expresiones
  • Tienen su propio espacio local de nombres y solo pueden acceder a variables globales

alsalas@udec.cl

V 1.0

¿Consultas?

alsalas@udec.cl

V 1.0

05 Python - Funciones - Google Slides