0% encontró este documento útil (0 votos)
5 vistas

Funciones en Python

Cargado por

ibarrajuancho84
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas

Funciones en Python

Cargado por

ibarrajuancho84
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 44

Funciones en python

Daniel Rambaut

March 15, 2024

Daniel Rambaut Funciones en python March 15, 2024 1 / 44


Tabla de contenidos

1 Funciones

2 flujo de ejecución

3 Llamado de multiplex funciones

4 Variables locales

5 Pasando argumentos a una función

6 Mecánicas de argumentos

7 Variables globales

8 Valores retornados de funciones

9 Modulos

Daniel Rambaut Funciones en python March 15, 2024 2 / 44


Introducción a la Programación - Python

Una función es un grupo de declaraciones que existen dentro de un


programa para realizar una tarea especı́fica.
Hemos estado usando varias funciones incorporadas en Python,
incluyendo:
print()
range()
len()
random.randint()
etc.

Daniel Rambaut Funciones en python March 15, 2024 3 / 44


Funciones

La mayorı́a de los programas realizan tareas lo suficientemente


grandes como para ser divididas en subtareas.
Por esta razón, los programadores a menudo organizan sus
programas en fragmentos más pequeños y manejables escribiendo
sus propias funciones.
En lugar de escribir un gran conjunto de instrucciones, podemos
descomponer un programa en varias funciones pequeñas, lo que
nos permite ”dividir y conquistar” un problema de programación.

Daniel Rambaut Funciones en python March 15, 2024 4 / 44


Definiendo Funciones

Las funciones, al igual que las variables, deben ser nombradas y


creadas antes de poder utilizarlas.
Las mismas reglas de nomenclatura se aplican tanto a variables
como a funciones:
No se pueden utilizar las palabras reservadas de Python.
No se pueden usar espacios.
El primer carácter debe ser A-Z, a-z o el carácter “ ”.
Después del primer carácter, se pueden usar A-Z, a-z, “ ” o 0-9.
Los caracteres en mayúscula y minúscula se distinguen entre sı́.

Daniel Rambaut Funciones en python March 15, 2024 5 / 44


Definiendo Funciones

Al igual que las variables, las funciones deben ser nombradas y


creadas antes de que puedas usarlas.
Las mismas reglas de nomenclatura aplican tanto para variables
como para funciones.
Ejemplo de definición y llamada de función:
Código
def myfunction():
print ("Impreso desde dentro de una función")
# Llamada a la función
myfunction()

Daniel Rambaut Funciones en python March 15, 2024 6 / 44


Algunas notas sobre las funciones

Cuando ejecutas una función, se dice que la ”llamas”.


Una vez que una función ha completado su ejecución, Python
regresa a la lı́nea inmediatamente después de la llamada inicial a
la función.
Al llamar a una función, comúnmente se dice que el ”control” del
programa ha sido transferido a la función. La función es
responsable de la ejecución del programa.
Las funciones deben ser definidas antes de que puedan ser
utilizadas. En Python, generalmente colocamos todas nuestras
funciones al principio de nuestros programas.

Daniel Rambaut Funciones en python March 15, 2024 7 / 44


Algunas notas sobre las funciones

Cuando ejecutas una función, se dice que la ”llamas”.


Una vez que una función ha completado su ejecución, Python
regresa a la lı́nea inmediatamente después de la llamada inicial a
la función.
Al llamar a una función, comúnmente se dice que el ”control” del
programa ha sido transferido a la función. La función es
responsable de la ejecución del programa.
Las funciones deben ser definidas antes de que puedan ser
utilizadas. En Python, generalmente colocamos todas nuestras
funciones al principio de nuestros programas.

Daniel Rambaut Funciones en python March 15, 2024 8 / 44


Flujo de Ejecución con Funciones

1 def hello () :
2 print ( " Hi there ! " )
3 print ( " I 'm a function ! " )
4
5 print ( " Good morning " )
6 print ( " Welcome to class " )
7
8 hello ()
9
10 print ( " And now we ' re done . " )

Daniel Rambaut Funciones en python March 15, 2024 9 / 44


Llamada a la función hello

1 def hello () :
2 print (" Hello there !")
3
4 def goodbye () :
5 print (" See ya !")
6
7 hello ()
8 goodbye ()

Daniel Rambaut Funciones en python March 15, 2024 10 / 44


Llamada de Funciones Dentro de Funciones

1 def main () :
2 print (" I have a message for you .")
3 message ()
4 print (" Goodbye !")
5
6 def message () :
7 print (" The password is 'foo '")
8
9 main ()

Daniel Rambaut Funciones en python March 15, 2024 11 / 44


Desafı́o de Programación: Cuadrado Hueco
Escribe una función que imprima el patrón mostrado a utilizando
funciones. Además de preguntarle al usuario la altura del rectángulo
que se quiere dibujar.

Daniel Rambaut Funciones en python March 15, 2024 12 / 44


Variables Locales

Daniel Rambaut Funciones en python March 15, 2024 13 / 44


Variables Locales

Las funciones son como ”mini programas”.


Puedes crear variables dentro de las funciones tal como lo haces en
tu programa principal.

Daniel Rambaut Funciones en python March 15, 2024 14 / 44


Variables Locales

1 def bugs () :
2 numbugs = int ( input ( ' How many bugs ? ') )
3 print ( numbugs )
4
5 bugs ()

Daniel Rambaut Funciones en python March 15, 2024 15 / 44


Variables Locales

Las variables definidas dentro de una función se consideran


”locales” a esa función.
Esto significa que solo existen dentro de la función. Objetos fuera
del ”alcance” de la función no podrán acceder a esa variable.

Daniel Rambaut Funciones en python March 15, 2024 16 / 44


Variables Locales

1 def bugs () :
2 numbugs = int ( input ( ' How many bugs ? ') )
3 print ( numbugs )
4
5 bugs ()
6 print ( numbugs )

Daniel Rambaut Funciones en python March 15, 2024 17 / 44


Variables Locales

Diferentes funciones pueden tener sus propias variables locales que


usan el mismo nombre de variable.
Estas variables locales no se sobrescribirán entre sı́, ya que existen
en ”alcances” diferentes.

Daniel Rambaut Funciones en python March 15, 2024 18 / 44


Variables Locales

1 def newjersey () :
2 numbugs = 1000
3 print ( " NJ has " , numbugs , " bugs " )
4
5 def newyork () :
6 numbugs = 2000
7 print ( " NY has " , numbugs , " bugs " )
8
9 newjersey ()
10 newyork ()

Daniel Rambaut Funciones en python March 15, 2024 19 / 44


Pasar Argumentos a una Función

A veces es útil no solo llamar a una función, sino también enviarle


uno o más datos como argumento.
Este proceso es idéntico a lo que hemos estado haciendo con las
funciones integradas que hemos estudiado hasta ahora.
1 x = random . randint (1 , 5) # enviar 2 enteros
2 y = len ( ' Obama ') # enviar 1 cadena
3

Daniel Rambaut Funciones en python March 15, 2024 20 / 44


Pasar Argumentos a una Función

1 def square ( num ) :


2 print ( num **2) # num asume el valor del
3 # argumento que se pasa a
4 # la f u n c i n (5)
5 square (5)

Daniel Rambaut Funciones en python March 15, 2024 21 / 44


Pasar Argumentos a una Función

Al pasar argumentos, necesitas informar a tu función qué tipo de


datos debe esperar en la definición de la función.
Esto se hace estableciendo un nombre de variable en la definición
de la función. Esta variable será declarada automáticamente cada
vez que llames a tu función y asumirá el valor del argumento
pasado a la función.

Daniel Rambaut Funciones en python March 15, 2024 22 / 44


Pasar Múltiples Argumentos a una Función

De hecho, puedes pasar cualquier número de argumentos a una


función.
Una manera de hacer esto es pasar los argumentos ”por posición”.

Daniel Rambaut Funciones en python March 15, 2024 23 / 44


Pasar Múltiples Argumentos a una Función

1 def average ( num1 , num2 , num3 ) :


2 sum = num1 + num2 + num3
3 avg = sum / 3
4 print ( avg )
5
6 average (100 , 90 , 92)

Daniel Rambaut Funciones en python March 15, 2024 24 / 44


Pasar Argumentos a una Función en Python

Cuando pasamos un argumento a una función en Python, en


realidad estamos pasando su ”valor” a la función, y no la variable
en sı́.

Daniel Rambaut Funciones en python March 15, 2024 25 / 44


Paso de Argumentos por Valor

1 def change_me ( v ) :
2 print ( " function got : " , v )
3 v = 10
4 print ( " argument is now : " , v )
5
6 myvar = 5
7 print ( " starting with : " , myvar )
8 change_me ( myvar )
9 print ( " ending with : " , myvar )

Daniel Rambaut Funciones en python March 15, 2024 26 / 44


Paso por Valor

Este comportamiento se llama ”paso por valor”.


Esencialmente, estamos creando dos copias de los datos que se
pasan: una que permanece en el programa principal y otra que se
pasa como argumento a nuestra función.
Este comportamiento nos permite establecer un mecanismo de
comunicación ”unidireccional”: podemos enviar datos a una
función como un argumento, pero la función no puede comunicarse
de vuelta actualizando o cambiando el argumento de ninguna
manera.
(Hablaremos sobre cómo comunicar de vuelta al llamador en un
momento).

Daniel Rambaut Funciones en python March 15, 2024 27 / 44


Variables Globales

Cuando creas una variable dentro de una función, decimos que la


variable es ”local” a esa función.
Esto significa que solo puede ser accedida por instrucciones dentro
de la función que la creó.
Cuando una variable es creada fuera de todas tus funciones, se
considera una ”variable global”.
Las variables globales pueden ser accedidas por cualquier
instrucción en tu archivo de programa, incluyendo por
instrucciones en cualquier función.
Todas las variables que hemos estado creando hasta ahora en clase
han sido variables globales.

Daniel Rambaut Funciones en python March 15, 2024 28 / 44


Variables Globales

1 name = ' Obama '


2
3 def showname () :
4 print ( " Function : " , name )
5
6 print ( " Main program : " , name )
7 showname ()

Daniel Rambaut Funciones en python March 15, 2024 29 / 44


Modificar Variables Globales Dentro de una Función

Si deseas poder cambiar una variable global dentro de una función,


primero debes indicarle a Python que deseas hacer esto usando la
palabra clave global dentro de tu función.

Daniel Rambaut Funciones en python March 15, 2024 30 / 44


Modificar una Variable Global Dentro de una Función

1 name = ' Obama '


2
3 def showname () :
4 global name
5 print ( " Function 1: " , name )
6 name = ' John '
7 print ( " Function 2: " , name )
8
9 print ( " Main program 1: " , name )
10 showname ()
11 print ( " Main program 2: " , name )

Daniel Rambaut Funciones en python March 15, 2024 31 / 44


Funciones que Devuelven Valores

Las funciones que devuelven valores son aquellas que retornan un


valor a la parte del programa que inició la llamada a la función.
Son casi idénticas al tipo de funciones que hemos estado
escribiendo hasta ahora, pero tienen la capacidad adicional de
enviar información de vuelta al final de la llamada a la función.
¡Hemos estado usando secretamente estas todo el semestre!

Ejemplos
somestring = input("Dime tu nombre")
somenumber = random.randint(1,5)

Daniel Rambaut Funciones en python March 15, 2024 32 / 44


Escribir Funciones que Devuelven Valores

Usas casi la misma sintaxis para escribir una función que devuelve
un valor que la que usarı́as para escribir una función normal.
La única diferencia es que necesitas incluir una instrucción return
en tu función para indicarle a Python que pretendes devolver un
valor al programa que hizo la llamada.
La instrucción return hace que una función termine
inmediatamente. Es como la instrucción break para un bucle.
Una vez que se encuentra una instrucción return, la función no
procederá más allá de ella. El control del programa se devuelve al
llamador.

Daniel Rambaut Funciones en python March 15, 2024 33 / 44


Funciones que Devuelven Valores

1 def myfunction ( arg1 , arg2 ) :


2 # Realiza algunas operaciones
3 resultado = arg1 + arg2 # Ejemplo de o p e r a c i n
4 return resultado
5
6 # Llamar a la f u n c i n
7 valorRetornado = myfunction (10 , 50)

Daniel Rambaut Funciones en python March 15, 2024 34 / 44


Notación IPO

Al empezar a escribir funciones más avanzadas, deberı́as pensar en


documentarlas basándote en su Entrada, Procesamiento y Salida
(IPO).

Ejemplo
1 # function : add_ages
2 # input : age1 ( integer ) , age2 ( integer )
3 # processing : combina los dos enteros
4 # output : devuelve el valor combinado
5 def add_ages ( age1 , age2 ) :
6 sum = age1 + age2
7 return sum

Daniel Rambaut Funciones en python March 15, 2024 35 / 44


Retorno de Múltiples Valores en Funciones

Las funciones pueden devolver múltiples valores utilizando la siguiente


sintaxis:
Ejemplo
1 def testfunction () :
2 x = 5
3 y = 10
4 return x , y
5
6 p , q = testfunction ()

Daniel Rambaut Funciones en python March 15, 2024 36 / 44


Módulos

Todos los lenguajes de programación vienen con una biblioteca


estándar de funciones diseñadas para facilitar el trabajo del
programador.
Algunas de estas funciones están integradas directamente en el
”núcleo” de Python (como print, input, range, etc.).
Otras funciones más especializadas se almacenan en una serie de
archivos llamados ”módulos”, a los cuales Python puede acceder
mediante el uso de la declaración import.

Ejemplos de Importación
import random
import time

Daniel Rambaut Funciones en python March 15, 2024 37 / 44


Módulos en Python

En un Mac, puedes ver estos archivos aquı́:

/Library/Frameworks/Python.framework/Versions/3.2/lib/pytho
Para ver información sobre un módulo, puedes hacer lo siguiente
en IDLE:
import modulename
help(modulename)

Daniel Rambaut Funciones en python March 15, 2024 38 / 44


Módulos

La declaración import le dice a Python que cargue las funciones


que existen dentro de un módulo especı́fico en la memoria y las
haga disponibles en tu código.
Debido a que no ves el funcionamiento interno de una función
dentro de un módulo, a veces las llamamos ”cajas negras”.
Una ”caja negra” describe un mecanismo que acepta una entrada,
realiza una operación que no puede ser vista utilizando esa
entrada, y produce algún tipo de salida.

Daniel Rambaut Funciones en python March 15, 2024 39 / 44


Funciones en Módulos

Llamamos a funciones que existen dentro de un módulo usando la


”notación de punto” para indicarle a Python que ejecute una
función que existe en ese módulo.

Ejemplo
num = random.randint(1,5)

Daniel Rambaut Funciones en python March 15, 2024 40 / 44


Listando Funciones en un Módulo

Puedes listar las funciones que existen en un módulo particular


usando la función help().
La función help() toma un argumento (una cadena que
representa el nombre del módulo) y devuelve el manual de usuario
para ese módulo.

Daniel Rambaut Funciones en python March 15, 2024 41 / 44


Creando Tus Propios Módulos

Puedes crear fácilmente tus propios módulos para llenarlos con tus
funciones. Aquı́ te explicamos cómo:
1 Crea un nuevo script de Python (por ejemplo,
"myfunctions.py").
2 Coloca tus definiciones de funciones en este script.
3 Crea un segundo script de Python (por ejemplo, "myprogram.py").
4 Importa tu módulo de funciones usando la declaración import:
import myfunctions
5 Llama a tus funciones usando la notación de punto:
myfunctions.function1()
myfunctions.dosomethingelse()

Daniel Rambaut Funciones en python March 15, 2024 42 / 44


Creando Tus Propios Módulos

Puedes crear fácilmente tus propios módulos para llenarlos con tus
funciones. Aquı́ te explicamos cómo:
1 Crea un nuevo script de Python (por ejemplo,
"myfunctions.py").
2 Coloca tus definiciones de funciones en este script.
3 Crea un segundo script de Python (por ejemplo, "myprogram.py").
4 Importa tu módulo de funciones usando la declaración import:
import myfunctions
5 Llama a tus funciones usando la notación de punto:
myfunctions.function1()
myfunctions.dosomethingelse()

Daniel Rambaut Funciones en python March 15, 2024 43 / 44


Desafı́o de Programación: Módulo geometry helper

Crea un módulo llamado geometry helper con dos funciones:


1 area of circle(radius): Acepta un argumento (un radio) y
muestra el área del cı́rculo al usuario.
2 perimeter of circle(radius): Acepta un argumento (un radio)
y muestra el perı́metro del cı́rculo al usuario.
Ambas funciones utilizarán el argumento proporcionado para calcular y
mostrar el resultado al usuario.

Daniel Rambaut Funciones en python March 15, 2024 44 / 44

También podría gustarte