SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
MODULOS
EN PYTHON
Mg. Richard E. Mendoza G.
https://www.youtube.com/watch?v=L6pFxljtQwo&t=3s
● En Python, la manera más
sencilla de debuguear es
utilizando el módulo pdb
Debugging
def divisores(num):
divisores = []
for i in range(1, num + 1):
if num % i == 1:
divisores.append(i)
return divisores
def run():
num = int(input('Ingresa un número:
'))
print(divisores(num))
print("Terminá mi programa")
if __name__ == '__main__':
run()
● Encuentraalossospechososcomunes.
● En lugar de preguntarte por qué un
programa no funciona, pregúntate
por qué está funcionando de esta
manera.
● Esposiblequeelbugnoseencuentre
dondecreesqueestá.
● Explícale el problema a otra persona.
De preferencia que no tenga
contexto.
● Lleva un registro de lo que has
tratado,preferentementeen laforma
detests.
● Veteadormir.
Errores Comunes
● Python permite declarar errores específicos para cada
programa.
● Es buena práctica extender el tipo de error del que se trate.
● Los errores se “lanzan” con el keyword raise
class ErrorDePosicion(Exception):
“””Explicación del error”””
pass
if not posicion:
raise ErrorDePosicion(‘mensaje’)
Errores propios
Errores propios
def es_palindromo(palabra):
palabra = palabra.replace(' ', '').lower()
if palabra[::] == palabra[::-1]:
return True
else:
return False
def run():
palabra = input('Ingrese una palabra: ')
if es_palindromo(palabra):
print('Es palindromo')
else:
print('No es palindromo')
if __name__ == "__main__":
run()
Raise
● Se basan en la
especificación de la
funciónoel programa.
● Prueba inputs y valida
outputs.
● Unit testing o integration
testing.
Pruebas de caja negra
import unittest
def suma(num_1, num_2):
return abs(num_1) + num_2
class
CajaNegraTest(unittest.TestCase):
def test_suma_dos_positivos(self):
num_1 = 10
num_2 = 5
resultado = suma(num_1, num_2)
self.assertEqual(resultado, 15)
if __name__ == '__main__':
unittest.main()
● Se basan en el flujo del
programa.
● Prueba todos los
caminos posibles de una
función. Ramificaciones,
bucles for y while,
recursión.
● Regressiontestingomocks.
Pruebas de Caja de Cristal
import unittest
def es_mayor_de_edad(edad):
if edad >= 18:
return False
else:
return False
class
PruebaCristalTest(unittest.TestCase):
def test_es_mayor_de_edad(self):
edad = 20
resultado = es_mayor_de_edad(edad)
self.assertEqual(resultado, True)
if __name__ == '__main__':
unittest.main()
● Python puede leer y escribir archivos con la función open
● La función open regresa un objeto archivo (file)
● Los archivos pueden ser de texto o binarios
● Se tiene que especificar el modo en que se maneja el archivo
○ ‘r’ = read
○ ‘w’ = write
○ ‘a’ = append
○ ‘r+’ = read and write
● Se debe cerrar el archivo con el método close
● La mejor manera de manejar archivos es con el keyword with
Manejo de archivos
● El objeto archivo tiene dos métodos para leerlo: read y readlines
Lectura de archivos
def leer():
numeros = []
with open("./archivos/numeros.txt",
"r", encoding="utf-8") as f:
for linea in f:
numeros.append(int(linea))
print(numeros)
def run():
leer()
if __name__ == '__main__':
run()
•WITH: En python se denomina como un
“manejador contextual”. Controla el flujo del
archivo y se asegura que el archivo no se
rompa en caso de que se cierre
inesperadamente.
•OPEN: Abre el archivo. Recibe parámetros.
PARÁMETROS: Si o si tiene que recibir
la ruta del archivo, y el modo de
apertura (r, w, a). Aunque puede recibir
otros parámetros más si queremos, pero
estos son opcionales.
•AS: Se le agrega un alias al final para luego
poder llamarlo.
● Para escribir a un archivo, se utiliza el método write
Escritura de archivos
•WITH: En python se denomina como un
“manejador contextual”. Controla el flujo del
archivo y se asegura que el archivo no se
rompa en caso de que se cierre
inesperadamente.
•OPEN: Abre el archivo. Recibe parámetros.
•PARÁMETROS: Si o si tiene que recibir
la ruta del archivo, y el modo de
apertura (r, w, a). Aunque puede recibir
otros parámetros más si queremos, pero
estos son opcionales.
•AS: Se le agrega un alias al final para luego
poder llamarlo.
def escribir():
nombres = ["Homero", "Marge",
"Marta"]
with open("./archivos/nombres.txt",
"w", encoding="utf-8") as f:
for nombre in nombres:
f.escribir(nombre)
f.escribir("n")
def run():
escribir()
if __name__ == '__main__':
run()
● PyPi (python package index) es un repositorio de paquetes de
terceros que se pueden utilizar en proyectos de python.
● Para instalar un paquete, es necesario utilizar la herramienta
pip.
● La forma de instalar un paquete es ejecutando el
comando pip install paquete.
● También se puede agrupar la instalación de varios paquetes a
la vez con el archivo requirements.txt
Paquetes de terceros
● Las pruebas automatizadas son una forma de verificar que el software:
○ Cumple con los requisitos técnicos y de negocio de la especificación
○ Funciona
● Python incluye un módulo específico para realizar esta tarea: unittest
● Los tests funcionan realizando afirmaciones (assertions) sobre el valor
de regreso de una función o el estado de una clase.
● Las pruebas se corren con test runners. El más común en Python se llama
nose.
● Los programadores profesionales escriben su software, especificando
primero las pruebas. Esto se conoce como test driven development.
Pruebas Automatizadas
Python Docstring Generator
Mantener una buena documentación en tu
código es valioso y esta extensión te
ayudará a cumplir con tu cometido. Pues al
colocar comillas dobles dentro de una
clase, método o función generará una
plantilla para tu docstring y así proveer de
la información necesaria de lo que estás
creando.
Code Runner
Es natural que mientras escribimos código
lo depuramos mediante su ejecución y para
esto mismo es Code Runner. Podrá ejecutar
tu código directamente desde la misma
ventana sin tener que pasar a la terminal.
Este plugin es grandioso no solo para
Python, pues es compatible con más de 20
lenguajes de programación distintos.
Trailing Spaces
Otro plugin de uso general es Trailing
Spaces, el cual permite ver aquellos
espacios vacíos al final o entre líneas para
eliminarlos. Bastante práctico considerando
que Python utiliza la indentación como base
de su estructura.
Better Comments
Al igual que los docstrings también
podemos colocar comentarios que sean
efectivos y con este plugin puedes utilizar
un formato de color especial para datos
importantes, alertas, tareas pendientes o
consideraciones.
Better Comments es compatible también
con múltiples lenguajes.
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

IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual Coswchavez
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...Jose Emilio Labra Gayo
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a ObjetosJose Emilio Labra Gayo
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistenteguest0fc4fa
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Maztherprozh
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Richard Eliseo Mendoza Gafaro
 

La actualidad más candente (20)

3 curso php
3 curso php3 curso php
3 curso php
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual C
 
Php!
Php!Php!
Php!
 
Comandos java
Comandos javaComandos java
Comandos java
 
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos
 
Codigo
CodigoCodigo
Codigo
 
Semana 4 Introduccion Javascript
Semana 4   Introduccion JavascriptSemana 4   Introduccion Javascript
Semana 4 Introduccion Javascript
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP3 Introducción al lenguaje PHP
3 Introducción al lenguaje PHP
 
Practica 1 html_basico
Practica 1 html_basicoPractica 1 html_basico
Practica 1 html_basico
 
Curso php y_mysql
Curso php y_mysqlCurso php y_mysql
Curso php y_mysql
 
Introduccion a python 3
Introduccion a python 3Introduccion a python 3
Introduccion a python 3
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Modelo Persistente
Modelo PersistenteModelo Persistente
Modelo Persistente
 
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)Semana 4   Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
Semana 4 Estructuras de datos(Tuplas, Conjuntos y Diccionarios)
 

Similar a Módulos en Python

Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxjgs07
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mariano Reingart
 
Clase 3 - Introducción a la programación con Python II.pptx
Clase 3 - Introducción a la programación con Python II.pptxClase 3 - Introducción a la programación con Python II.pptx
Clase 3 - Introducción a la programación con Python II.pptxjgs07
 
Investigacion de Python.pptx
Investigacion de Python.pptxInvestigacion de Python.pptx
Investigacion de Python.pptxSelTrejo
 
Fundamentos de Java / 15 consejos prácticos sobre Java que cambiarán la for...
Fundamentos de Java /   15 consejos prácticos sobre Java que cambiarán la for...Fundamentos de Java /   15 consejos prácticos sobre Java que cambiarán la for...
Fundamentos de Java / 15 consejos prácticos sobre Java que cambiarán la for...Eudris Cabrera
 
Python guia 2
Python guia 2Python guia 2
Python guia 2NybSnz
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 
El tutorial de pythonnnn
El tutorial de pythonnnnEl tutorial de pythonnnn
El tutorial de pythonnnnYordan Ramos
 
INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)FRANCIACOCO
 
Tutorial python3
Tutorial python3Tutorial python3
Tutorial python3DannyEtn
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Sergio Soto
 

Similar a Módulos en Python (20)

Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
 
Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015Mini clase Intro Programación Python UTN Profesorado 2015
Mini clase Intro Programación Python UTN Profesorado 2015
 
Clase 3 - Introducción a la programación con Python II.pptx
Clase 3 - Introducción a la programación con Python II.pptxClase 3 - Introducción a la programación con Python II.pptx
Clase 3 - Introducción a la programación con Python II.pptx
 
Clase1_Python-CTIC
Clase1_Python-CTICClase1_Python-CTIC
Clase1_Python-CTIC
 
Investigacion de Python.pptx
Investigacion de Python.pptxInvestigacion de Python.pptx
Investigacion de Python.pptx
 
Python
Python Python
Python
 
Fundamentos de Java / 15 consejos prácticos sobre Java que cambiarán la for...
Fundamentos de Java /   15 consejos prácticos sobre Java que cambiarán la for...Fundamentos de Java /   15 consejos prácticos sobre Java que cambiarán la for...
Fundamentos de Java / 15 consejos prácticos sobre Java que cambiarán la for...
 
Python guia 2
Python guia 2Python guia 2
Python guia 2
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
El tutorial de pythonnnn
El tutorial de pythonnnnEl tutorial de pythonnnn
El tutorial de pythonnnn
 
Tutorial python3
Tutorial python3Tutorial python3
Tutorial python3
 
Tutorial python3
Tutorial python3Tutorial python3
Tutorial python3
 
Tutorial python
Tutorial pythonTutorial python
Tutorial python
 
INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)INFOSAN Tutorial python3 (1)
INFOSAN Tutorial python3 (1)
 
Tutorial python3
Tutorial python3Tutorial python3
Tutorial python3
 
Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014Pycon es 17 noviembre 2014
Pycon es 17 noviembre 2014
 
Programacion de algoritmos
Programacion de algoritmosProgramacion de algoritmos
Programacion de algoritmos
 

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

Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptxJhordanGonzalo
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfssuserc34f44
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 

Último (20)

Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 

Módulos en Python

  • 2.
  • 4.
  • 5.
  • 6.
  • 7. ● En Python, la manera más sencilla de debuguear es utilizando el módulo pdb Debugging def divisores(num): divisores = [] for i in range(1, num + 1): if num % i == 1: divisores.append(i) return divisores def run(): num = int(input('Ingresa un número: ')) print(divisores(num)) print("Terminá mi programa") if __name__ == '__main__': run()
  • 8.
  • 9. ● Encuentraalossospechososcomunes. ● En lugar de preguntarte por qué un programa no funciona, pregúntate por qué está funcionando de esta manera. ● Esposiblequeelbugnoseencuentre dondecreesqueestá. ● Explícale el problema a otra persona. De preferencia que no tenga contexto. ● Lleva un registro de lo que has tratado,preferentementeen laforma detests. ● Veteadormir. Errores Comunes
  • 10. ● Python permite declarar errores específicos para cada programa. ● Es buena práctica extender el tipo de error del que se trate. ● Los errores se “lanzan” con el keyword raise class ErrorDePosicion(Exception): “””Explicación del error””” pass if not posicion: raise ErrorDePosicion(‘mensaje’) Errores propios
  • 11. Errores propios def es_palindromo(palabra): palabra = palabra.replace(' ', '').lower() if palabra[::] == palabra[::-1]: return True else: return False def run(): palabra = input('Ingrese una palabra: ') if es_palindromo(palabra): print('Es palindromo') else: print('No es palindromo') if __name__ == "__main__": run()
  • 12. Raise
  • 13. ● Se basan en la especificación de la funciónoel programa. ● Prueba inputs y valida outputs. ● Unit testing o integration testing. Pruebas de caja negra import unittest def suma(num_1, num_2): return abs(num_1) + num_2 class CajaNegraTest(unittest.TestCase): def test_suma_dos_positivos(self): num_1 = 10 num_2 = 5 resultado = suma(num_1, num_2) self.assertEqual(resultado, 15) if __name__ == '__main__': unittest.main()
  • 14. ● Se basan en el flujo del programa. ● Prueba todos los caminos posibles de una función. Ramificaciones, bucles for y while, recursión. ● Regressiontestingomocks. Pruebas de Caja de Cristal import unittest def es_mayor_de_edad(edad): if edad >= 18: return False else: return False class PruebaCristalTest(unittest.TestCase): def test_es_mayor_de_edad(self): edad = 20 resultado = es_mayor_de_edad(edad) self.assertEqual(resultado, True) if __name__ == '__main__': unittest.main()
  • 15. ● Python puede leer y escribir archivos con la función open ● La función open regresa un objeto archivo (file) ● Los archivos pueden ser de texto o binarios ● Se tiene que especificar el modo en que se maneja el archivo ○ ‘r’ = read ○ ‘w’ = write ○ ‘a’ = append ○ ‘r+’ = read and write ● Se debe cerrar el archivo con el método close ● La mejor manera de manejar archivos es con el keyword with Manejo de archivos
  • 16.
  • 17. ● El objeto archivo tiene dos métodos para leerlo: read y readlines Lectura de archivos def leer(): numeros = [] with open("./archivos/numeros.txt", "r", encoding="utf-8") as f: for linea in f: numeros.append(int(linea)) print(numeros) def run(): leer() if __name__ == '__main__': run() •WITH: En python se denomina como un “manejador contextual”. Controla el flujo del archivo y se asegura que el archivo no se rompa en caso de que se cierre inesperadamente. •OPEN: Abre el archivo. Recibe parámetros. PARÁMETROS: Si o si tiene que recibir la ruta del archivo, y el modo de apertura (r, w, a). Aunque puede recibir otros parámetros más si queremos, pero estos son opcionales. •AS: Se le agrega un alias al final para luego poder llamarlo.
  • 18. ● Para escribir a un archivo, se utiliza el método write Escritura de archivos •WITH: En python se denomina como un “manejador contextual”. Controla el flujo del archivo y se asegura que el archivo no se rompa en caso de que se cierre inesperadamente. •OPEN: Abre el archivo. Recibe parámetros. •PARÁMETROS: Si o si tiene que recibir la ruta del archivo, y el modo de apertura (r, w, a). Aunque puede recibir otros parámetros más si queremos, pero estos son opcionales. •AS: Se le agrega un alias al final para luego poder llamarlo. def escribir(): nombres = ["Homero", "Marge", "Marta"] with open("./archivos/nombres.txt", "w", encoding="utf-8") as f: for nombre in nombres: f.escribir(nombre) f.escribir("n") def run(): escribir() if __name__ == '__main__': run()
  • 19. ● PyPi (python package index) es un repositorio de paquetes de terceros que se pueden utilizar en proyectos de python. ● Para instalar un paquete, es necesario utilizar la herramienta pip. ● La forma de instalar un paquete es ejecutando el comando pip install paquete. ● También se puede agrupar la instalación de varios paquetes a la vez con el archivo requirements.txt Paquetes de terceros
  • 20. ● Las pruebas automatizadas son una forma de verificar que el software: ○ Cumple con los requisitos técnicos y de negocio de la especificación ○ Funciona ● Python incluye un módulo específico para realizar esta tarea: unittest ● Los tests funcionan realizando afirmaciones (assertions) sobre el valor de regreso de una función o el estado de una clase. ● Las pruebas se corren con test runners. El más común en Python se llama nose. ● Los programadores profesionales escriben su software, especificando primero las pruebas. Esto se conoce como test driven development. Pruebas Automatizadas
  • 21. Python Docstring Generator Mantener una buena documentación en tu código es valioso y esta extensión te ayudará a cumplir con tu cometido. Pues al colocar comillas dobles dentro de una clase, método o función generará una plantilla para tu docstring y así proveer de la información necesaria de lo que estás creando. Code Runner Es natural que mientras escribimos código lo depuramos mediante su ejecución y para esto mismo es Code Runner. Podrá ejecutar tu código directamente desde la misma ventana sin tener que pasar a la terminal. Este plugin es grandioso no solo para Python, pues es compatible con más de 20 lenguajes de programación distintos. Trailing Spaces Otro plugin de uso general es Trailing Spaces, el cual permite ver aquellos espacios vacíos al final o entre líneas para eliminarlos. Bastante práctico considerando que Python utiliza la indentación como base de su estructura. Better Comments Al igual que los docstrings también podemos colocar comentarios que sean efectivos y con este plugin puedes utilizar un formato de color especial para datos importantes, alertas, tareas pendientes o consideraciones. Better Comments es compatible también con múltiples lenguajes.
  • 22. Si es una buena idea, continuad y llevadla a término. Es mucho más fácil pedir disculpas que conseguir el permiso necesario