Funciones
Profesor: Santiago Quiñones
Docente Investigador
Departamento de Ingeniería Civil
Programación - Ingeniería en Geología
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/11389952/pasted-from-clipboard.png)
Contenidos
Módulos existente
Existes muchas librerías o módulos ya programados (math, random)
Realizan todo tipo de tareas, simples o complejas
Mucho trabajo ya está hecho.
Revisar repositorio https://pypi.org
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534222/pasted-from-clipboard.png)
Primer método
Cómo importarlos
import <nombre modulo>
Ejemplo
import math
Segundo método
Cómo importarlos
from <nombre módulo> import <elemento1>, <elemento2>
Ejemplo
from math import pow, sqrt
Tercer método
Cómo importarlos
from <nombre módulo> import <elemento1> as <alias>
Ejemplo
from math import e as euler
Cuarto método
Cómo importarlos
from <nombre módulo> import *
Ejemplo
from math import *
Con el primer método
Cómo llamarlas
import modulo
modulo.funcion(argumentos)
Ejemplo
import math
math.sin(0)
Con el segundo y cuarto método
Cómo llamarlas
from modulo import funcion
funcion(argumentos)
Ejemplo
from random import uniform
uniform(0, 1)
Con el tercer método
Cómo llamarlas
from modulo import funcion as mifun
mifun(argumentos)
Ejemplo
from random import randint as rnd
rnd(5, 10)
Ejemplo completo
from random import randint as rnd
from math import pi, e
lanzamiento = rnd(1, 6)
if lanzamiento < 4:
print(pi * lanzamiento)
else:
print(e * lanzamiento)
Ejemplo completo
Introducción a las funciones
¿Por qué necesitamos funciones?
Ayuda a evitar la repetición de código y a mantenerlo organizado.
Facilita la corrección de errores al aislar el código en una función.
Permite navegar de manera más fácil en un algoritmo complejo
¿Por qué necesitamos funciones?
Imagina que tendrías que hacer si tu jefe te pide cambiar el mensaje para que fuese más cortés, por ejemplo que comience con la frase “Por favor”.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534326/pasted-from-clipboard.png)
¿Es posible separar ese código repetido, darle un nombre y hacerlo reutilizable?
-
Fragmento de código que recibe parámetros, ejecuta acciones, y retorna un resultado.
-
Puede ser entendidas igual que el ámbito matemático.
Funciones
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534334/pasted-from-clipboard.png)
Sintaxis, invocación, parámetros y argumentos, retorno de valores
Sintaxis
-
Siempre comienza con la palabra reservada def (definir)
-
Después de def va el nombre de la función (sigue las mismas reglas para asignar nombres de variables)
-
Espacio para un par de paréntesis.
-
La línea termina con dos puntos
-
La línea inmediata después de def marca el comienzo del cuerpo de la función.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534403/pasted-from-clipboard.png)
Invocación de funciones
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534490/pasted-from-clipboard.png)
No se está utilizando la función, lee la definición de la función y la recuerda, pero no la ejecuta sin tu permiso.
En este segundo caso se ha insertado la invocación de la función entre los dos mensajes.
1
2
Invocación de funciones
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534465/pasted-from-clipboard.png)
Invocación de funciones
Definición de función parametrizada
Una vez que nosotros definimos una función, podemos llamar de la siguiente manera
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534499/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534501/pasted-from-clipboard.png)
Definición de función parametrizada
Multiples líneas, multiples parámetros
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534519/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534521/pasted-from-clipboard.png)
Ejemplos de uso:
Multiples líneas, multiples parámetros
Problemas
¿Cuál es la salida del siguiente código?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534539/pasted-from-clipboard.png)
A. 5
B. 9
C. 4
D. 3
E. 8
Reto 1: Calcular el IMC
Definamos una función que calcula el índice de Masa Corporal (IMC):
Como puedes observar, la fórmula ocupa dos valores:
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534555/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/10534556/pasted-from-clipboard.png)
- peso (originalmente en kilogramos)
- altura (originalmente en metros)
Reto 2: La longitud de segmento
Dados cuatro números reales que representan coordenadas cartesianas: (x1,y1),(x2,y2). Escribe una función distance(x1, y1, x2, y2)
para calcular la distancia entre los puntos (x1,y1) y (x2,y2). Lee cuatro números reales e imprime la distancia resultante calculada por la función.
La fórmula de la distancia entre dos puntos se encuentra en Wolfram.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/11001464/pasted-from-clipboard.png)
Reto 3: Tipo de triángulo
Según el teorema de Pitágoras el cuadrado de la hipotenusa es igual a la suma del cuadrado de los catetos: (C² = A² + B²). Utilizando este concepto es posible conocer de que tipo es un triángulo:
Si C²=A²+B² es un triángulo rectángulo.
Si C²<A²+B² es un triángulo acutángulo.
Si C²>A²+B² es un triángulo obtusángulo.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/2413802/images/11003622/pasted-from-clipboard.png)
Escriba una función que reciba los dos catetos e hipotenusa y devuelva el tipo de triángulo. Realice pruebas manuales.
Reto 4: Figuras geométricas
Generar una solución que implemente 3 funciones. Que permitan calcular el área de un cuadrado, área de un triángulo y área de un rectángulo. Cada función debe recibir los datos necesarios y devolver el valor correspondiente. Invoque a las funciones con la información necesaria y valide los resultados de forma manual.
- El área del cuadrado es igual a lado x lado
- El área del triángulo es igual a (base x altura)/2
- El área del rectángulo es igual a base x altura
Funciones #Geología
By lsantiago
Funciones #Geología
- 89