SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
MODULOS
EN PYTHON
Mg. Richard E. Mendoza G.
https://www.ted.com/talks/eneritz_zubizarreta_el_testing_de_software_nos_salva_cada_dia
● Un módulo permite agrupar funcionalidad común en un
sólo archivo.
● Cuando varios módulos agrupan funcionalidades
comunes, se pueden agrupar, a su vez, en paquetes.
● Python reconoce que un directorio es un paquete
porque contiene un archivo llamado__init .py
Paquetes y módulos
def convertir(tipo_moneda, dolares):
pesos = float(input('¿Cuántos ' + tipo_moneda + ' desea
cambiar? '))
return round(pesos / dolares, 2)
menu = '''
1. COP A USD
2. ARG A USD
3. MX A USD
opcion = int(input(menu))
if opcion == 1:
print('En USD es: $' + str(convertir('colombianos',
3715.50)))
elif opcion == 2:
print('En USD es: $' + str(convertir("argentinos", 70.50)))
elif opcion == 3:
print('En USD es: $' + str(convertir('mexicanos', 22.66)))
else:
print('Ingrese opción válida')
Modularización Funciones
● Cuando se lanza (throw) un
error, si el error no se “atrapa”,
entonces el programa se
detiene.
● Hay veces que queremos evitar
este comportamiento porque
sabemos como arreglar el error.
● Para manejar el error se utilizan
los keywords try / except
● La cláusula else se ejecuta si no
han ocurrido excepciones y antes
de la cláusula finally.
Manejo de errores
try:
#Código a ejecutar
except:
# Código para 'cachar' o 'recibir'
el error y hacer algo
else:
# Código cuando el try SI sirva y NO
se ejecute el except
finally:
# Código que SIEMPRE se va a
ejecutar, independientemente se
ejecute el except o el else
Errores
SyntaxError
Exception
FileNotFoundError
ZeroDivisionError
ImportError
IndexError
KeyError
KeyboardInterrupt
def dividir(x, y):
try: #Código a ejecutar
resultado = x / y
except ZeroDivisionError: #Código para 'cachar' el
error
print("¡División por cero!") #Hacer algo
else: #Código cuando el try SI sirva y NO el except
print("El resultado es", resultado)
finally: #Código que SIEMPRE se va a ejecutar
print("Ejecutando la clausula finally")
print(dividir(2,1))#2.0 y clausula finally
dividir(2, 0)#¡División por cero!
dividir("2", "1")#Solo clausula finally y error
Jerarquía de errores en Python
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
def encontrar(elemento,lista):
'''Devuelve el indice donde se encuentra el
@elemento en la @lista
Si no lo encuentra devuelve -1
'''
indice=0
while True:
try:
if lista[indice]==elemento:
return indice
except IndexError:
return -1
indice+=1
print(encontrar(4, [2,3,4,5]))
print(encontrar(1, [2,3,4,5]))
Jerarquía de errores en Python
● Programacióndefensiva
● Pueden utilizarse para
verificar que los tipos sean
correctosenunafunción
● También sirven para
debuguear
● El uso del assert en Python
nos permite verificar que
una determinada condición
sea True, y de no serlo, se
lanzará una excepción.
Afirmaciones
# assert <expresion booleana>,
<mensaje de error>
def primera_letra(lista_de_palabras):
primeras_letras=[]
for palabra in lista_de_palabras:
assert type(palabra) == str,
f'{palabra} no es str'
assert len(palabra) > 0, 'No se
permiten str vacios'
primeras_letras.append(palabra[0])
return primeras_letras
def primera_letra(lista_palabras):
primeras_letras = []
for palabra in lista_palabras:
try:
assert type(palabra) == str, f'{palabra} no es
String'
assert len(palabra) > 0 , 'No se permiten vacios'
primeras_letras.append(palabra[0])
except AssertionError as e:
print(e)
return primeras_letras
lista = ['Angel',3.5, '', 4 , '4321', 0.53]
print('Primeras letras validas son : ' ,
primera_letra(lista))
Modularización Funciones
Si es una buena idea,
continuad y llevadla a
término. Es mucho más fácil
pedir disculpas que conseguir
el permiso necesario

Más contenido relacionado

La actualidad más candente (19)

programacion
programacionprogramacion
programacion
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
C++
C++C++
C++
 
Ejercicios con Python parte 05
Ejercicios con Python parte 05Ejercicios con Python parte 05
Ejercicios con Python parte 05
 
2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje2. Manejo de la sintaxis del lenguaje
2. Manejo de la sintaxis del lenguaje
 
4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Tema3 p2%20
Tema3 p2%20Tema3 p2%20
Tema3 p2%20
 
Práctica web de la sesión 3
Práctica web de la sesión 3Práctica web de la sesión 3
Práctica web de la sesión 3
 
Objetop
ObjetopObjetop
Objetop
 
Ejercicios Python parte 4
Ejercicios Python parte 4Ejercicios Python parte 4
Ejercicios Python parte 4
 
3 curso php
3 curso php3 curso php
3 curso php
 
3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje3. Utilización de los objetos predefinidos del lenguaje
3. Utilización de los objetos predefinidos del lenguaje
 
Python03
Python03Python03
Python03
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 Min
 
Package logica jo
Package logica joPackage logica jo
Package logica jo
 
Tarea sesion 3
Tarea sesion 3Tarea sesion 3
Tarea sesion 3
 
Funciones de cadenas
Funciones de cadenasFunciones de cadenas
Funciones de cadenas
 

Similar a Semana 6 Módulos en Python Entrega 1

Similar a Semana 6 Módulos en Python Entrega 1 (20)

2 Introducción al lenguaje Ruby
2 Introducción al lenguaje Ruby2 Introducción al lenguaje Ruby
2 Introducción al lenguaje Ruby
 
ORM Doctrine
ORM DoctrineORM Doctrine
ORM Doctrine
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
Python boloñesa
Python boloñesa Python boloñesa
Python boloñesa
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Shell script
Shell scriptShell script
Shell script
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala4 Introducción al lenguaje Scala
4 Introducción al lenguaje Scala
 
Ejemplos de llamadas al sistema
Ejemplos de llamadas al sistemaEjemplos de llamadas al sistema
Ejemplos de llamadas al sistema
 
Informe minishell
Informe minishellInforme minishell
Informe minishell
 
Cplus
CplusCplus
Cplus
 
Shell
ShellShell
Shell
 
Expo metodo de ordenamiento shell
Expo metodo de ordenamiento shellExpo metodo de ordenamiento shell
Expo metodo de ordenamiento shell
 
Expo metodo de ordenamiento shell
Expo metodo de ordenamiento shellExpo metodo de ordenamiento shell
Expo metodo de ordenamiento shell
 
Expo metodo de ordenamiento shell
Expo metodo de ordenamiento shellExpo metodo de ordenamiento shell
Expo metodo de ordenamiento shell
 
Expo metodo de ordenamiento shell
Expo metodo de ordenamiento shellExpo metodo de ordenamiento shell
Expo metodo de ordenamiento shell
 
Expo metodo de ordenamiento shell
Expo metodo de ordenamiento shellExpo metodo de ordenamiento shell
Expo metodo de ordenamiento shell
 
Practica 5
Practica 5Practica 5
Practica 5
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 

Más de Richard Eliseo Mendoza Gafaro

PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1Richard Eliseo Mendoza Gafaro
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIRichard Eliseo Mendoza Gafaro
 

Más de Richard Eliseo Mendoza Gafaro (20)

CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEICUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
CUESTIONARIO REDES TELEMATICAS CISCO, HPE Y HUAWEI
 
Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1Material_para_Estudiante_DMPC_V012022A_SP_1
Material_para_Estudiante_DMPC_V012022A_SP_1
 
MANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASEMANUAL DE ORACLE AUTONOMOUS DATABASE
MANUAL DE ORACLE AUTONOMOUS DATABASE
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 3
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 2
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 4
 
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
PARCIAL 2 PLATAFORMAS Y SOPORTES MULTIMEDIA 2023-2-VARIANTE 1
 
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCIPARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
PARCIAL 2 SISTEMAS OPERATIVOS - BD MYSQL EN ORACLE OCI
 
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UXPARCIAL 2 DESARROLLO DE INTERFACES UI UX
PARCIAL 2 DESARROLLO DE INTERFACES UI UX
 
Explicación cadena de valor
Explicación cadena de valorExplicación cadena de valor
Explicación cadena de valor
 
MANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEBMANUAL DESPLIEGUE SERVIDOR WEB
MANUAL DESPLIEGUE SERVIDOR WEB
 
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCHMANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
MANUAL DE DESPLIEGUE BASE DE DATOS CON WORKBENCH
 
CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2CUESTIONARIO INTRODUCCION A UNITY 3D v2
CUESTIONARIO INTRODUCCION A UNITY 3D v2
 
CUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3DCUESTIONARIO INTRODUCCION A UNITY 3D
CUESTIONARIO INTRODUCCION A UNITY 3D
 
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOSMANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
MANUAL DESPLIEGUE SERVIDOR BASE DE DATOS
 
INTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOSINTRODUCCION A SISTEMAS OPERATIVOS
INTRODUCCION A SISTEMAS OPERATIVOS
 
CLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUDCLASE 2 ORACLE CLOUD
CLASE 2 ORACLE CLOUD
 
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIOCASOS DE ESTUDIO MODELADO DEL NEGOCIO
CASOS DE ESTUDIO MODELADO DEL NEGOCIO
 
MATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNAMATERIAL DE ESTUDIO CCNA
MATERIAL DE ESTUDIO CCNA
 
PREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTASPREGUNTAS TOGAF 9.2 RESPUESTAS
PREGUNTAS TOGAF 9.2 RESPUESTAS
 

Último

bombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos Petrólerosbombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos PetrólerosEstefannyMedrano1
 
TABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgada
TABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgadaTABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgada
TABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgadaMarlnAlexanderCardon
 
Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793Camposol S. A.
 
Tema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfseTema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfseyohepirell
 
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptxCLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptxLuisLobatoingaruca
 
Responsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptxResponsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptxROSARIODELPILARMERIN
 
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptxINVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptxssuserd2ff51
 
Redes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segundaRedes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segundaanonimussecreto
 
Carbohidratos utilizados en la industria alimentaria.pdf
Carbohidratos utilizados en la industria alimentaria.pdfCarbohidratos utilizados en la industria alimentaria.pdf
Carbohidratos utilizados en la industria alimentaria.pdfJESUSGARRIDOISLAS1
 
guia-diseno-instalaciones-electricas.pdf
guia-diseno-instalaciones-electricas.pdfguia-diseno-instalaciones-electricas.pdf
guia-diseno-instalaciones-electricas.pdfguillermo ruiz
 
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptxEXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptxalejandroagarcia2336
 
Capacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptx
Capacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptxCapacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptx
Capacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptxErickAbrahamChavezBe
 
bombeo-de-cavidad-progresiva_compress (1).pptx
bombeo-de-cavidad-progresiva_compress (1).pptxbombeo-de-cavidad-progresiva_compress (1).pptx
bombeo-de-cavidad-progresiva_compress (1).pptxEstefannyMedrano1
 
1 METABOLISMO PROTEICO. el metabolismo docx
1 METABOLISMO PROTEICO. el metabolismo docx1 METABOLISMO PROTEICO. el metabolismo docx
1 METABOLISMO PROTEICO. el metabolismo docxssuser80acf9
 
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRAPROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRAJaime Cruz Diaz
 
Ciclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptxCiclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptxUniversidad de Guayaquil
 
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfSegundo Silva Maguiña
 
vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)
vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)
vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)jorgeluispalacioscac
 

Último (20)

bombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos Petrólerosbombeo cavidades progresivas en pozos Petróleros
bombeo cavidades progresivas en pozos Petróleros
 
TABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgada
TABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgadaTABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgada
TABLA DE ROSCAS invetiga las rescas . milimetricas , en pulgada
 
Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793Guía de SGSST para MYPES según Ley 28793
Guía de SGSST para MYPES según Ley 28793
 
Tema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfseTema 1 ECONOMIA del MECANIZADO.pptx.mfse
Tema 1 ECONOMIA del MECANIZADO.pptx.mfse
 
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptxCLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
 
Responsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptxResponsabilidad de padres con sus hijos (1).pptx
Responsabilidad de padres con sus hijos (1).pptx
 
ESTRATEGIA comercial de productos en mineria.pptx
ESTRATEGIA comercial de productos en mineria.pptxESTRATEGIA comercial de productos en mineria.pptx
ESTRATEGIA comercial de productos en mineria.pptx
 
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptxINVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
 
Redes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segundaRedes GSM en la tecnología en la segunda
Redes GSM en la tecnología en la segunda
 
Carbohidratos utilizados en la industria alimentaria.pdf
Carbohidratos utilizados en la industria alimentaria.pdfCarbohidratos utilizados en la industria alimentaria.pdf
Carbohidratos utilizados en la industria alimentaria.pdf
 
guia-diseno-instalaciones-electricas.pdf
guia-diseno-instalaciones-electricas.pdfguia-diseno-instalaciones-electricas.pdf
guia-diseno-instalaciones-electricas.pdf
 
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptxEXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
EXPOSICION CIENCIA E INGENIERIA DE LOS MATERIALES.doc.pptx
 
Capacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptx
Capacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptxCapacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptx
Capacitación virtual_Hcampos_Asistencia Tecnica_Cajamarca.pptx
 
bombeo-de-cavidad-progresiva_compress (1).pptx
bombeo-de-cavidad-progresiva_compress (1).pptxbombeo-de-cavidad-progresiva_compress (1).pptx
bombeo-de-cavidad-progresiva_compress (1).pptx
 
1 METABOLISMO PROTEICO. el metabolismo docx
1 METABOLISMO PROTEICO. el metabolismo docx1 METABOLISMO PROTEICO. el metabolismo docx
1 METABOLISMO PROTEICO. el metabolismo docx
 
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRAPROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
PROCESO CONSTRUCTIVO DE UNA CALZADURA EN OBRA
 
Ciclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptxCiclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptx
 
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
 
vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)
vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)
vectores,rectas y plano en bidimensional(r2) y tridimensional (r3)
 
Deusto Ingeniería 24 (Año 2023) - Universidad de Deusto
Deusto Ingeniería 24 (Año 2023) - Universidad de DeustoDeusto Ingeniería 24 (Año 2023) - Universidad de Deusto
Deusto Ingeniería 24 (Año 2023) - Universidad de Deusto
 

Semana 6 Módulos en Python Entrega 1

  • 2.
  • 3.
  • 5.
  • 6.
  • 7.
  • 8. ● Un módulo permite agrupar funcionalidad común en un sólo archivo. ● Cuando varios módulos agrupan funcionalidades comunes, se pueden agrupar, a su vez, en paquetes. ● Python reconoce que un directorio es un paquete porque contiene un archivo llamado__init .py Paquetes y módulos
  • 9. def convertir(tipo_moneda, dolares): pesos = float(input('¿Cuántos ' + tipo_moneda + ' desea cambiar? ')) return round(pesos / dolares, 2) menu = ''' 1. COP A USD 2. ARG A USD 3. MX A USD opcion = int(input(menu)) if opcion == 1: print('En USD es: $' + str(convertir('colombianos', 3715.50))) elif opcion == 2: print('En USD es: $' + str(convertir("argentinos", 70.50))) elif opcion == 3: print('En USD es: $' + str(convertir('mexicanos', 22.66))) else: print('Ingrese opción válida') Modularización Funciones
  • 10. ● Cuando se lanza (throw) un error, si el error no se “atrapa”, entonces el programa se detiene. ● Hay veces que queremos evitar este comportamiento porque sabemos como arreglar el error. ● Para manejar el error se utilizan los keywords try / except ● La cláusula else se ejecuta si no han ocurrido excepciones y antes de la cláusula finally. Manejo de errores try: #Código a ejecutar except: # Código para 'cachar' o 'recibir' el error y hacer algo else: # Código cuando el try SI sirva y NO se ejecute el except finally: # Código que SIEMPRE se va a ejecutar, independientemente se ejecute el except o el else
  • 12. def dividir(x, y): try: #Código a ejecutar resultado = x / y except ZeroDivisionError: #Código para 'cachar' el error print("¡División por cero!") #Hacer algo else: #Código cuando el try SI sirva y NO el except print("El resultado es", resultado) finally: #Código que SIEMPRE se va a ejecutar print("Ejecutando la clausula finally") print(dividir(2,1))#2.0 y clausula finally dividir(2, 0)#¡División por cero! dividir("2", "1")#Solo clausula finally y error Jerarquía de errores en Python Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero
  • 13. def encontrar(elemento,lista): '''Devuelve el indice donde se encuentra el @elemento en la @lista Si no lo encuentra devuelve -1 ''' indice=0 while True: try: if lista[indice]==elemento: return indice except IndexError: return -1 indice+=1 print(encontrar(4, [2,3,4,5])) print(encontrar(1, [2,3,4,5])) Jerarquía de errores en Python
  • 14. ● Programacióndefensiva ● Pueden utilizarse para verificar que los tipos sean correctosenunafunción ● También sirven para debuguear ● El uso del assert en Python nos permite verificar que una determinada condición sea True, y de no serlo, se lanzará una excepción. Afirmaciones # assert <expresion booleana>, <mensaje de error> def primera_letra(lista_de_palabras): primeras_letras=[] for palabra in lista_de_palabras: assert type(palabra) == str, f'{palabra} no es str' assert len(palabra) > 0, 'No se permiten str vacios' primeras_letras.append(palabra[0]) return primeras_letras
  • 15. def primera_letra(lista_palabras): primeras_letras = [] for palabra in lista_palabras: try: assert type(palabra) == str, f'{palabra} no es String' assert len(palabra) > 0 , 'No se permiten vacios' primeras_letras.append(palabra[0]) except AssertionError as e: print(e) return primeras_letras lista = ['Angel',3.5, '', 4 , '4321', 0.53] print('Primeras letras validas son : ' , primera_letra(lista)) Modularización Funciones
  • 16. Si es una buena idea, continuad y llevadla a término. Es mucho más fácil pedir disculpas que conseguir el permiso necesario