0% encontró este documento útil (0 votos)
19 vistas149 páginas

Python Notas

El documento proporciona una introducción a Python, cubriendo conceptos básicos como instalación, variables, tipos de datos, y estructuras de control. También se abordan temas avanzados como programación orientada a objetos, encapsulamiento y herencia, así como el uso de librerías y herramientas como GitHub. Además, se discuten las diferencias entre lenguajes de alto y bajo nivel, y se ofrecen ejemplos prácticos de código.

Cargado por

andres perez
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
19 vistas149 páginas

Python Notas

El documento proporciona una introducción a Python, cubriendo conceptos básicos como instalación, variables, tipos de datos, y estructuras de control. También se abordan temas avanzados como programación orientada a objetos, encapsulamiento y herencia, así como el uso de librerías y herramientas como GitHub. Además, se discuten las diferencias entre lenguajes de alto y bajo nivel, y se ofrecen ejemplos prácticos de código.

Cargado por

andres perez
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 DOCX, PDF, TXT o lee en línea desde Scribd

Python

Conceptos básicos
Comentarios
Instalación de Python
Anaconda
Variables
Tipos de datos
Operadores
Sentencias de control
Bucles
Colecciones
Funciones
Clases y Objetos
Encapsulamiento
Herencia
Herencia múltiple
Clases abstractas

Librerias

Resumen de métodos y colecciones


Resumen
Conceptos importantes
Lenguaje de alto nivel vs de bajo nivel
Un lenguaje de alto nivel es más parecido al lenguaje que usamos los humanos, mientras que el de más bajo nivel es un lenguaje más cercano a la máquina,
más difícil de entender. Ambos son importantes. Los lenguajes de alto nivel sirven para el desarrollo de software, aplicaciones web y de escritorio o móviles,
y permiten a los programadores centrarse en la lógica y la funcionalidad. Mientras que los lenguajes de bajo nivel sirven para controlar directamente el
hardware y gestionar procesos más internos de la máquina, como en el desarrollo de sistemas operativos o controladores.
Recursos

Característica Lenguaje de Alto Nivel Lenguaje de Bajo Nivel

Sintaxis Más parecida al lenguaje natural (inglés, por ejemplo). Muy cercana al lenguaje de máquina; es críptica y difícil de leer.
Facilidad de uso Fácil de aprender y usar. Más difícil de aprender y usar; requiere conocimientos detallados del hardware.
Abstracción Alta abstracción; oculta detalles del hardware y el sistema operativo. Baja abstracción; está muy cerca del hardware y es específico para un tipo de procesador.
Baja portabilidad; el código está diseñado para funcionar en un tipo de hardware o sistema
Portabilidad Alta portabilidad; el mismo código puede ejecutarse en diferentes plataformas con pocos cambios.
específico.
Gestión de memoria Automática (por ejemplo, con recolección de basura). Manual; el programador debe gestionar directamente la memoria.
Velocidad Generalmente más lento debido a la abstracción y las verificaciones adicionales en tiempo de ejecución. Más rápido, ya que el código se ejecuta más directamente sobre el hardware.

Dependencia del hardware Generalmente independiente del hardware. Muy dependiente del hardware, diseñado para una arquitectura específica.

Nivel de control Menos control sobre los recursos del sistema (memoria, procesadores, etc.). Alto control sobre los recursos del sistema.
Uso principal Desarrollo de aplicaciones, software de alto nivel, interfaces gráficas, desarrollo web, etc. Desarrollo de sistemas embebidos, controladores, sistemas operativos, firmware, etc.
Ejemplos Python, Java, C++, JavaScript, Ruby. Lenguaje ensamblador, lenguaje máquina.

Facilidad para detectar errores Más fácil de depurar y detectar errores debido a herramientas como depuradores y un entorno controlado. Más difícil de depurar; los errores pueden ser más crípticos y difíciles de rastrear.

Tiempo de desarrollo Más rápido, debido a la sintaxis sencilla y las herramientas disponibles. Más lento, ya que requiere escribir más código detallado y específico.

Rendimiento Menor rendimiento comparado con los lenguajes de bajo nivel. Mayor rendimiento debido a la ejecución más directa en el hardware.

Paradigmas de programación
 Paradigma de programación: es un enfoque o estilo en el que se organiza y estructura el código para resolver problemas mediante programación
 Tipos:
o Imperativa: se centra en describir como se realiza una tarea paso a paso
o Orientada a Objetos (POO): Organiza el código mediante objetos que tienen atributos y métodos
o Funcional: centrada en el uso de funciones puras y en inmutabilidad de datos.
 Inmutabilidad significa que cuando creamos un dato no podemos modificarlo solo usar ese dato y crear otro a partir de ese.
o Lógica
o Declarativa
o Reactiva
Entorno de desarrollo integrado (IDE), compilador e interprete
 Entorno de desarrollo integrado (IDE): IDE significa "Entorno de Desarrollo Integrado" (por sus siglas en inglés, Integrated Development Environment) son programas
diseñados para facilitar y mejorar el proceso de desarrollo de software en diversas etapas, desde la creación hasta la implementación. Estos ayudan a los programadores en la creación, edición,
Básicamente es como una navaja suiza que contiene compiladores, editores, interpretes etc.
compilación, depuración y gestión de código fuente.
o Pycharm: que es un IDE especializado para pyhton
o Visual Studio: es un IDE que sirve para varios lenguajes y cosas que se necesite. Mas general.
 Lenguaje de programación: Un lenguaje de programación es un conjunto de reglas y símbolos que permiten a un programador escribir instrucciones que una computadora
puede entender y ejecutar.
 Compilador: Es un programa que traduce el código fuente de un lenguaje de programación a código máquina
 Intérprete: Es un programa que ejecuta el código fuente línea por línea en tiempo real.
o Algunos lenguajes de programación necesitan un interprete para ejecutarse y listo, otros necesitan un compilador para poder ejecutarse y
otros necesitan ambos tanto el intérprete como el compilador.
o Python solo necesita interprete.

Librerías (Bibliotecas), Módulos y Funciones


¿Qué son librerías, módulos y funciones?
 Biblioteca: es un conjunto de módulos relacionados que proporcionan funcionalidades específicas. Por lo general, las
bibliotecas están destinadas a resolver un conjunto particular de problemas o proporcionar funciones especializadas.
 Módulo: Un módulo es un archivo de pyhton que contiene funciones, variables y herramientas que podemos usar.
 Función: una función es una porción de código que realiza un trabajo específico en pyhton.
 A veces una librería puede contener muchos módulos como la NumPy o contener un solo modulo como la random

¿Cómo instalar una librería en Python?


 Para instalar debes ir al Terminal y escribir pip install xxxx
Usar una función de un módulo
 Traer todo el módulo
o Colocamos import modulo
o Esta forma trae todo el modulo y luego debemos especificar que función usaremos de esa librería importada
o Para usar las funciones de este modulo se debe especificar el modulo luego punto y luego la función

import math # Importamos todo el módulo math

resultado = [Link](16) # Usamos [Link] para llamar la función sqrt


print(resultado) # Salida: 4.0

 Traer una función específica


o Colocamos las palabras from modulo import función
o Esta forma solo se trae una sola función y no todo el módulo entero
o Al usar la función solo colocamos el nombre de la función en el código y no todo el modulo g

from math import sqrt # Solo importamos la función sqrt del módulo math

resultado = sqrt(16) # Usamos solo la función sqrt


print(resultado) # Salida: 4.0
Algunas librerías conocidas

 random: (No necesita instalación, es parte de la biblioteca estándar).


 NumPy: pip install numpy
 Pandas: pip install pandas
 Matplotlib: pip install matplotlib
 Seaborn: pip install seaborn
 Scikit-learn: pip install scikit-learn
 TensorFlow: pip install tensorflow
 Keras: pip install keras
 Flask: pip install flask
 Django: pip install django
 Requests: pip install requests
 BeautifulSoup4: pip install beautifulsoup4
 SQLAlchemy: pip install sqlalchemy
 PyTest: pip install pytest
 OpenCV: pip install opencv-python

Git y github
¿Qué es GitHub?
GitHub es un sitio web que usa Git, que es un sistema de control de versiones.

👉 Control de versiones significa:

 Guardar el historial de cambios de un proyecto

 Volver a versiones anteriores

 Saber quién cambió qué y cuándo

¿Para que sirve?


GitHub sirve para guardar, organizar y compartir proyectos (especialmente código), llevando un historial de cambios y facilitando el trabajo individual y
en equipo.

En corto:
 📦 Guarda tu código en la nube

 🕒 Registra cambios (versiones)

 🤝 Permite trabajar en equipo

 📤 Facilita compartir y aprender de otros

Instalación
Python
[Link]

PyCharm
Instalación
 [Link]
 Hay que descargar la versión community que es gratis
 Todo siguiente
Crear un archivo nuevo
 Clic sobre la carpeta pyhton> new> pyhton file
Visual Studio

Google Colab
Códigos y funciones
Comentarios
Comentar una sola línea # comentario
#Este es un comentario de una sola línea
Comentar varias líneas a la vez en bloque “”” comentario “””
"""Este es un comentario
de más de una
línea """
Imprimir en pantalla
Imprimir texto simple print (“texto”)
print("Hola mundo")

Salida

Imprimir variables print (a)


a= 1
b="rojo"

print(a)
print(b)
Imprimir un salto de línea print () print("\n texto \n”)
#Forma 1: Usando print()

print()
print("Esta es una línea")
print()
print("Esta es la segunda línea")
#Forma 2: Usando \n

print("\nEsta es una línea\n")


print("Esta es una segunda linea")

Imprimir variables y texto en una misma línea print (f” texto {a} texto {b}”) a, b:
variables
print(f"El texto va aqui {a} y la otra {b}")
Imprimir limitando la cantidad de decimales print (f”{numero:.nf}”) n:
números
print(f"Con 2 decimales: {numero:.2f}") #El número se redondea
print(f"Con 3 decimales: {numero:.3f}")
Imprimir en una sola línea varias líneas for i in (1, 2, 3)
print( i, end= "c") c = carácter separador
salida: 1c2c3c

for i in range(5):
print(i, end=" ")
salida

Variables y constantes
Datos y variables variable: contenedor (tupper) dato: información
(vegetales)
 Una variable es un contendedor de un dato que es la información a contener.
 Los datos son la información que se contendrá en una variable. Ejemplo: variable es el tupper y el dato son los vegetales.

Tipos de datos int= 3 Número entero


float=3.12 Número decimal
str= “letras” cadenas de caracteres (solo letras y símbolos)- Inmutables
bool= TRUE Booleanos (pueden ser True or false)
list= [a,3,c] Mutable, entre corchetes, índice
tuple= (a,3,c) ó a,3,c Inmutable, índice
dict={“a”:2, “b”:3} Tienen clave: valor cada elemento.
set={“a”, “b”, 3} Mutables, no índice, no permite elementos repetidos.
 Entero (int): números enteros (no decimales)
 Flotante (float) : Números con decimales
 Cadena de texto (str): Secuencias de caracteres
 Booleano (bool): Toma un valor True o False
 None: indica ausencia de datos
 Lista (list): colección de dato
o Pueden ser de diferentes tipos en la misma lista
o Se puede agregar o quitar elementos
o Se puede acceder a cada elemento mediante un índice
 Tupla (tuple)
o Es una colección inmutable (osea no se puede modificar los elementos)
o Se puede acceder a los elementos ya que tienen indice y están ordenados
o Si dentro de la tupla hay listas o diccionarios estos si pueden mutar (agregar o modificar)
 Diccionario (dict)
o Conjunto de pares clave-valor
o Se puede acceder a las claves o al valor

 Conjunto (set)
o Parecido a las listas, pero no tienen índices (no hay orden ni indice de cada elemento)
o Se pueden agregar o quitar elementos específicos
o No permiten duplicados osea si en un conjunto hay los elementos 1, 2, y 3 y tu quieres agregar un 2 no se agregará ya que no puede haber
dos valores con el mismo valor.
o Se puede encontrar un valor especifico en el conjunto, pero no su posicion.

entero= 3
flotante= 4.335
cadena_texto= "esto es ecuador"
booleano= False
lista=[1,"rojo",False,4,5]
tupla=("a", "b", 1, 2)
diccionario= {"nombre": "Ana", "edad": 30}
conjunto={1,2, 3, 4}
variable: None

Variables y la Memoria Ram variable es una etiqueta que apunta a una dirección en la memoria
donde está el objeto (dato)
 Cada vez que creamos una variable y le asignamos un valor estamos reservando un espacio en la memoria RAM (Random Access memory) o
memoria de corto plazo
 Lo que guardas en la RAM se reinicia o borra cuando apagas la pc.
 Sirve para que los procesos se hagan mas rápido que si solo usáramos una memoria permanente.
 La RAM no guarda datos de forma permanente, sino que guarda datos que se necesitan mientras esta activo un programa o aplicación. Una vez que
se apaga la PC esos datos se borran sino se han guardado en otro lado
 Mientras más RAM tenga la PC puede realizar mayor cantidad de tareas al mismo tiempo.
Como funciona la memoria RAM
 La memoria RAM contiene una serie de espacios que están numerados con un código hexadecimal. (El sistema heaxdecimal es aquel que tiene 16
digitos en lugar de 10. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)) esto ayuda a expresar valores de manera mas compacta. Por ejemplo: ,
0x7ff1234abcd.
 Las variables guardan direcciones de memoria y no datos.
 Cuando agregamos una variable la memoria Ram guarda el dato en una dirección de estas y lo que hace la variable es copiar esa dirección para que
cuando accedamos a la variable pueda ir y tomar lo que esta guardado en esa dirección y poder usarlo.
 Las variables no guardan los datos solo nos direccionan al lugar en la memoria ram que tiene a los datos guardados

Reglas para nombres de variables no empezar con números: 1variable | Python sensible a mayus y minúsculas
Permitido No permitido
 Mayúsculas, minúsculas, digitos y guiones bajos.  No puede comenzar con dígitos
Ejemplo: 1variable
 No se puede utilizar palabras reservadas como : for, if, try ,etc.

 Python es sensible a mayúsculas y minúsculas. Ejemplo: Mi_nombre y mi_nombre tomara como dos variables diferentes
 Snake case: usar palabras en minúsculas separadas por guines bajos EJmplo: mi_variable_01
 Nombres descriptivos: Usar descripciones y no solo letras: Ejemoplo: “primer_nombre” en lugar de poner “m”

Constantes No existe en Python pero se usan letras mayúsculas NAME= “Jorge”,


PI=3,1415
 Las constantes son valores que deseamos que no cambien en nuestro código una vez ingresado ´
 En Python no existe una opción para ingresar constantes
 Existe una convención que es usar como nombre de la variable letras mayúsculas
o Ejemplo:
PI= 3,1415
USUARIO_INICIAL: “Jorge Guzmán”

Asignación múltiple a, b, c = dato1, dato2, dato3 Equivalente: a=dato1, b=dato2, c=dato3

a, b, c = "Saludo", 14, True

print (a, b, c)

Agnación encadenada a= b= c = datos a, b y c valen lo mismo


 Todas las variables valen lo mismo inicialmente
a= b= c= 1

print(a, b, c)

Cadenas (string)
Cadenas múltiples (más de una línea) """ texto o
texto
""" "
cadena_multiple= """ este es un string de
varias
lineas
que se puede usar"""

print(cadena_multiple)

salida:
Índices de cadenas Posición de un carácter en una cadena numerado desde 0

Todas las cadenas están indexadas, es decir tienen un valor numérico que indica la posición de cada carácter

Por ejemplo: en “Hola Mundo” tenemos 10 caracteres numerados del 0-9 asi:

Recuperar caracteres de una cadena a partir del índice cadena[índice]


cadena [ indice ] se coloca el nombre de la cadena y entre corchetes el indice de la posicion del caracter

cadena1= "Hola mundo"

caracter0=cadena1[0] #Se espera extraiga H


caracter1=cadena1[1] #Se espera extraiga o

print(caracter0)
print(caracter1)

Inmutabilidad de cadenas no podemos reemplazar o modificar los caracteres de


una cadena creada
 En Python podemos acceder y recuperar un carácter por medio de su índice de una cadena, pero no podemos cambiar esa cadena inicial o algún
carácter de dicha cadena. Para hacerlo debemos cambiar toda la cadena por otra.
Ejemplo:
cadena= "andres"
print(cadena)
print(id(cadena))
cadena=[Link]("a", "A")
print(cadena)
print(id(cadena))
salida:

En este ejemplo creamos una variable cadena y le asignamos un valor “andres” este dato se encuentra en la dirección 2967998804832 que se indica en la
salida. Cuando colocamos el método .replace lo que pasa es que tomamos la cadena “andres” copiamos sus datos creamos otra cadena nueva en la
dirección 2967998957824 (que es otra dirección) pero esta vez la nueva cadena tiene la “a” mayúscula en lugar de minúscula. Al guardar esa cadena en la
variable cadena, se redirecciona la variable ahora a la nueva dirección en memoria.
Caracteres especiales \n salto de línea \t espacio \' \" \\ insertar como
texto
 \n salto de línea
 \t tabulador
 \' inserta comilla simple sin dar error
 \" inserta comilla doble sin dar error
 \\ inserta un slash como texto sin producir un error

print("hola \nmundo") #Inserta un salto de linea


print("\thola mundo") #Inserta un tab (espacio)
print("\t\t\t\t hola mundo") #Inserta varios tabs (espacios)
print("hola \'mundo") #Sirve para poder incluir en el texto una comilla simple sin que de error
print("hola \"mundo") #Sirve para poder incluir en el texto una comilla doble sin que de error
print("hola \\mundo") #Sirve para poder incluir en el texto un slash sin que de error
Salida
Concatenación de cadenas (unir cadenas de texto) Método1: cadena1 +cadena2 + … cadenan
Método2: "".join ([cadena1 , cadena2 , …, cadenan])
 Concatenar cadenas significa unir dos o más cadenas de texto para formar una nueva, donde los caracteres de cada cadena se agrupan en una sola
 Se puede usar:
o el operador +
o El método join

#Usando el operador +
cadena1 ="Hola"
cadena2 ="mundo"
cadena3 ="en pyhton"

cadena_concatenada=cadena1+cadena2+cadena3+"Andres"
print(cadena_concatenada)

#Usando el método join


cadena_concatenada2= "".join([cadena1, cadena2, cadena3, "Andres"]) #se debe colocar las comillas primero
print(cadena_concatenada2)

Formateo de cadenas (insertar valores dentro de un texto) Método1 (fstring): f" texto {a} texto {b}"
a,b: variables
Método2 (format): " texto {a} texto {b}".format(a, b) a,b: variables
 Formatear una cadena significa insertar valores o variables dentro de esa cadena de texto, sin tener que concatenar manualmente.
 Existen dos formas de hacerlo:
o F string: se coloca f ” texto { variable 1 } mastexto { variable 2 } ”
o Método format ” t exto {}mastexto {}” . format ( variable 1 , varible 2)

nombre= "Andres"
edad= 30

mensaje= f"Hola me llamo {nombre} y tengo {edad} años"


mensaje2= "Hola me llamo {} y tengo {} años".format(nombre, edad)

print(mensaje)
print(mensaje2)

Salida
Cambiar de bases numéricas a un valor con fstring f" {numero: base}" (cambia el valor número a la base
que indiquemos)

Colocar Varios métodos de una cadena [Link]().upper().lower() se puede colocar muchos


métodos a la vez
.upper() Convierte toda la cadena a mayúsculas

.lower() Convierte toda la cadena a minúsculas

.capitalize() Convierte la primera letra en mayúscula

.title() Pone en mayúscula la primera letra de cada palabra

.swapcase() Invierte mayúsculas y minúsculas

.replace(old, new) Reemplaza todas apariciones de old por new

.strip() Elimina espacios al inicio y al final

.lstrip() Elimina espacios al inicio

.rstrip() Elimina espacios al final

.split(sep) Divide la cadena en una lista usando sep como separador

.find("caracter") Busca el carácter y arroja el índice del mismo


(solo el arroja el índice del primer carácter que
tenga esa cadena)
.isdigit() Confirma que en la cadena haya solo números del 0-9
.isnumeric() Confirma si en la cadena hay dígitos y valores
fraccionarios, numero romanos, dígito árabe.
.title() Coloca en mayúscula la primera letra de cada palabra

.startswith(“a”) Verifica si una cadena comienza con la letra “a”

cadena[::-1] revertir los caracteres de una cadena. Escribir al revés

cadena1= " Hola Mundo "


cadena2="### Hola mundo ### ###"

# Método upper para colocar una cadena en mayúsculas


print([Link]())

# Método lower para colocar una cadena en minusculas


print([Link]())

#Método strip para eliminar caracteres o espacios de una cadena


#.strip() elimina espacios al inicio y final
print([Link]())

# .strip(" ") elimina los caracteres indicados al principio yu final hasta que encuentra otro diferente
print([Link]("#"))

salida:

Largo de una cadena len(cadena) cuenta cuantos caracteres


tiene la cadena
cadena1= "Hola mundo! "
print(len(cadena1))

Nota: se cuentan espacios en blanco también.


Multiplicación de cadenas cadena*n multiplica la cadena n
veces
 Significa repetir una cadena las veces que indiquemos
cadena1= "Hola canción"

print(cadena1 * 4)
print(cadena1 * 2)
print(cadena1 * 1)
print(cadena1 * 0)
salida:

Obtener una subcadena cadena [indice_inicio: indice_final] no incluye el


carácter final
 Una subcadena es un parte una cadena, es decir tomamos una porción de esa cadena
 Para obtener se coloca el nombre de la cadena seguido de corchetes y dentro de los corchetes los índices de inicio y fin entre dos puntos
Cadena[inicio:fin]
Nota: la cadena incluye el carácter que tiene el índice inicio, pero no el de fin sino uno menos

cadena1= "Hola mundo! "


# 0 1 2 3 4 5 6 7 8 9 10 11
# H o l a m u n d o !

print(cadena1[3:6]) #Se extrae desde el 3 hasta el 5


print(cadena1[2:9]) #Se extrae desde el 2 hasta el 8

Buscar en subcadenas [Link](“caracteres”)


 Busca si en la cadena hay la combinación de caracteres que escribas dentro de las comillas.
 Si hay esa combinación arroja el indice del primer carácter de esa combinación
 Si no hay la combinación arrija -1
 Solo puede identificar la primera vez que salga esa combinación. Si esa combinación se repite varias veces no puede contar todas solo la primera
 cadena1= "Hola mundo! "
# 0 1 2 3 4 5 6 7 8 9 10 11
# H o l a m u n d o !

print([Link]("mundo")) #Imprime el índice del primer caracter si encuentra la palabra


print([Link]("mendo")) #Imprime -1 porque no existe esa combinación en la cadena

Salida.

Reemplazar cadenas [Link](“subcadena a reemplazar”, “nueva


subcadena”)
 Las cadenas son inmutables osea que no se pueden modificar una vez creadas.
 Reemplazar significa tomas los datos de una cadena creada y crear otra a partir de esos datos con ciertos cambios que nosotros le demos con el
método replace. Es decir, no cambiamos la original, sino que creamos otra a partir de la anterior.
 Si se desea hacer más de un cambio a la vez se puede colocar. replace nuevamente varias veces
cadena1= "Hola mundo! "
# 0 1 2 3 4 5 6 7 8 9 10 11
# H o l a m u n d o !

print([Link]("mundo", "Amigos de mi hermano"))

#Nota: si solo la imprimimos así esta cadena nueva no se ha guardado en ningun lado por lo que no podriamos acceder
a ella después a menos que la guardemos en una nueva variable

#Hacer varios reemplazos a la vez


print([Link]("a", "x").replace("o", "m").replace("u", "n"))

Separar cadenas [Link](“caracter separador”)


 El método Split separa cadenas utilizando como referencia un carácter que sea el separador. Cada vez que encuentra ese carácter termina una
cadena y empieza otra.
 Si no se indica un separador de manera explícita, toma el espacio como separador
 Al final guarda cada trozo de la cadena en una lista que contiene los trozos

cadena1= "Hola canción roca feliz"


cadena2= "Hola, canción, roca, feliz"
cadena3= "Hola# canción# roca# feliz"

lista1= [Link]() #Separa por espacios


lista2= [Link](",") #Separa por las comas
lista3= [Link]("#") #Separa por numeral

print(lista1)
print(lista2)
print(lista3)

Contar caracteres de una cadena [Link](“carácter”) cuenta vece aparece un carácter en


una cadena
Ejercicios de cadenas
Ejercicio 1

Solución:

 Usar la variable nombre_limpio y empresa_limpio varias veces a medida que vamos limpiando y normalizando esos datos en lugar de estar
cambiando en cada paso por otra variable.
nombre = "Andrés Pérez Guevara"
empresa = "Global Mentoring"
dominio = ".[Link]"

#Limpiados de espacios
nombre_limpio=[Link]()
empresa_limpio=[Link]()

#Colocamos en mínusculas los datos


nombre_limpio=nombre_limpio.lower()
empresa_limpio=empresa_limpio.lower()

#cambiamos los espacios por punto y quitar espacio


nombre_limpio=nombre_limpio.replace(" ",".")
empresa_limpio=empresa_limpio.replace(" ","")

#cambiamos las vocales que lleven tilde


nombre_limpio=nombre_limpio.replace("á","a").replace("é","e").replace("í","i").replace("ó","o").replace("ú","u")
empresa_limpio=empresa_limpio.replace("á","a").replace("é","e").replace("í","i").replace("ó","o").replace("ú","u")

print(f""""*** Generador de Email***


Nombre de usuario: {nombre}
Nombre de usuario normalizado: {nombre_limpio}

Nombre empresa: {empresa}


Extesión del domino: {dominio}
Dominio de email normalizado: @{empresa_limpio}{dominio}

Email final generado: {nombre_limpio}@{empresa_limpio}{dominio}

""")

Ejercicio 2
Entrada de datos
Conversión de datos – Casting int(a), float(a), bool(a), str(a) a: es una
variable o dato
 Convertir a entero int()
 Convertir a flotante float()
 Convertir a cadena str()
 Convertir a booleano bool()

o Cuando transformamos un número entero o decimal a booleano toma a 0 como False y a un número diferente de cero como True

#Convertir números en booleanos


numero= 0
numero2= -4
numero3= 2.4
cadena= ""
cadena2= "Hola"

print(f"Número entero 0: {bool(numero)}") #como es cero da False


print(f"Número entero negativo -4: {bool(numero2)}") #como no es cero da True
print(f"Número flotante 2.4: {bool(numero3)}") #como no es cero da True
print(f"Cadena vacía: {bool(cadena)}") #cadena vacía da False
print(f"Cadena con caracteres \"Hola\": {bool(numero)}") #cadena da True

Entrada de datos por consola input( “texto”) por defecto lo que ingresa es un str
int(input( “texto”)) float(input( “texto”)) bool(input( “texto”))

 Entrada input()
 Entrada y convertir a entero int(input())
 Entrada y convertir a float floaat(input())
 Entrada y convertir a cadena str(input()) Por defecto input() hace que lo que ingresemos sea cadena
 Entra y convertir a booleano bool(input())
 Si escribimos algo dentro de input con comillas es lo que se va a mostrar como texto de entrada
#Ingresar una entrada para cadena
nombre= input("Ingrese su nombre:")
print(f"Nombre ingresado: {nombre}")

#Ingresar una entrada para entero


edad= int(input("Ingrese su edad: "))
print(f"Edad:{edad} ")

#Ingresar una entrada para flotante


salario= float(input("Ingrese su salario:"))
print(f"Salario:{salario}")
Generar datos aleatorios randint(a,b) a y b: son números entre los que se
generaran los números aleatorios

#Forma 1: importando toda la libreria


import random
numero=[Link](1,10)
print(numero)

#Forma 2: Importando solo la función randint

from random import randint


numero= randint(1,10)
print(numero)

Ejercicio: Sistema Generador ID único


Solucion:
### Sistema de Generador ID
import random
name= input("Ingrese su nombre: ").strip().upper()[0:2]
apellido= input("Ingrese su apellido: ").strip().upper()[0:2]
year= input("Ingrese su año de nacimiento: ")[2:4]

numero1= [Link](0,9)
numero3= [Link](0,9)
numero2= [Link](0,9)
numero4= [Link](0,9)

print(F"Resultado ID único: {name}{apellido}{year}{numero1}{numero2}{numero3}{numero4}")

Ejercicio2: generador de emails

Solución:
### Sistema de Generador ID
import random
name= input("Ingrese su nombres: ").strip().lower().replace(" ",".").replace("á","a").replace("é","e").replace("í",
"i").replace("ó", "o").replace("ú", "u")
apellido= input("Ingrese sus apellidos: ").strip().lower().replace("
",".").replace("á","a").replace("é","e").replace("í", "i").replace("ó", "o").replace("ú", "u")
empresa= input("Ingrese el nombre de la empresa: ").strip().lower().replace("
","").replace("á","a").replace("é","e").replace("í", "i").replace("ó", "o").replace("ú", "u")
dominio= input("Ingrese la extensión de dominio : ")

print(F"Resultado ID único: {name}.{apellido}@{empresa}{dominio}")


Operadores
Tipos
Aritméticos Asignación Comparación Otros
Precedencia de operadores
 Es el orden o prioridad en que Python realizará una operación que le demos, semejante al orden de operaciones en matemáticas
Ejercicios
Ejercicio 1: Sistema de autenticación

Solución:
print("*** Sistema de Autenticación***")
usuario_correcto= "andres"
password_correcto= "123"

usuario= input("¿Cuál es su usuario?: ").strip().lower()


password= input("¿Cuál es tu password?: ").strip().lower()

respuesta=usuario==usuario_correcto and password==password_correcto

print(f"¿Datos correctos?: {respuesta}")

Ejercicio 2: Valor dentro de Rango


Solución:
print("*** Valor dentro de Rango ***")

VALOR_MIN=0
VALOR_MAX=5

numero=int(input(f"Ingrese un valor entre {VALOR_MIN} y {VALOR_MAX}: "))

validacion= numero>=VALOR_MIN and numero <= VALOR_MAX

print(f"Valor dentro de rango: {validacion} ")

Ejercicio 3: Calculadora de área y perímetro de un rectángulo


Solución:
print("*** Calculadora de área y perímetro ***")

base= float(input("Ingrese la base del rectángulo:" ))


altura=float(input("Ingrese la altura del rectángulo:" ))

area=base*altura
perimetro= 2 *(base+altura)

print(f"El área es: {area} y el pèrimetro: {perimetro})")

Ejericicio 5:

Sentencias de control: If /elif /else


Diagramas de flujo
Inicio o fin de proceso

Acción a ejecutar

Decisión: varias opciones (bifurcación o condicional)


Flujo del proceso

Ejemplo:

If /Else /Elif if condición :


Código a ejecutar si cumple condición
elif condición :
Codigo a ejecurar si cumple condición
else:
Codigo a ejecutar si cumple condición
Ejecución paso a paso de una sentencia de condición
 Esta opción sirve para poder encontrar errores en un código
Hacemos un clic sobre una línea de código válida que puede ser una declaración de variable y se marca el punto rojo.

Luego hacemos clic derecho sobre la línea marcada y luego Debug


EN el panel de abajo nos salen unos botones que nos servirán para ir corriendo el código. El que necesitamos es el que dice Step Over que significa
ir paso a paso y en la pestaña Threads & Varibles iremos viendo lo que va pasando.

SI queremos saber cómo se evalua una expresión debemos marcar esa expresión y luego clic derecho y luego Add whatches. Al hacer esto se
mostrara en la parte de abajo como el programa evalua esa parte de código.
Operador ternario variable = valor_si_verdadero if condición else valor_si_falso
 Un operador ternario en Python es una forma concisa de escribir una expresión condicional, similar a un "if-else" en una sola línea. Este operador
se utiliza para evaluar una condición y devolver un valor basado en si la condición es verdadera o falsa.
edad= 18

es_adulto = "si" if edad>=18 else "no"


print(es_adulto) # si

edad= 18

es_adulto = "Eres adulto" if edad>=18 else "Eres un niño"


print(es_adulto) #Eres adulto

Ejercicios
Ejercicio 1 Tienda en línea
solución
print("*** Sistema de Descuentos***")
monto=int(input("¿Cuál fue el monto de tu compra?: "))
membresia=input("¿Eres miembro de la tienda? (si/no): ").strip().lower()
descuento=0
print()
if monto>1000 and membresia =="si":
descuento=monto*(10/100)
print(f"Felicidades has obtenido un descuento del 10%")
elif membresia =="si":
descuento = monto * (5 / 100)
print(f"Felicidades has obtenido un descuento del 5%")
elif monto>1000:
descuento = monto * (3 / 100)
print(f"Felicidades has obtenido un descuento del 3%")
else:
pago_final = monto
print("No obtuviste ningún tipo de descuento")
pago_final = monto - descuento

print(f"Monto de la compra: ${monto}")


print(f"Monto del descuento: ${descuento}")
print(f"Monto final de la compra con descuento: ${pago_final}")

Ejercicio 2 Sistema bancario


Solución

continuar=input("¿Desea salir del sistema? (si/no): ").strip().lower()

continuar=continuar== "si"

if not continuar == True:


print("Continuamos dentro del sistema")
else:
print("Saliendo del sistema")

Ejercicio 3: Casa de los espejos

Solución
print("***Bienvenidos a la casa de los espejos***")
edad= int(input("Ingresa tu edad: "))
miedo=input("¿Te da miedo la oscuridad? (si/no):" ).strip().lower()
miedo= miedo=="si"
if not miedo and edad>=10 :
print("Bienvenido a la casa de los espejos")
else:
print("No puedes ingresar")

Ejercicio 4: Aplicación de Fitness

Solución.
print("*** APlicación de Salud y Fitness***")

META_PASOS_DIARIOS= 10000
CALORIAS_POR_PASO = 0.04

nombre= input("Ingresa tu nombre: ")


pasos_diarios= int (input("Ingresa la canditidad de pasos caminados en el día: "))

calorias_quemada = pasos_diarios * CALORIAS_POR_PASO

verificador_meta_cumplida= "si" if pasos_diarios>=META_PASOS_DIARIOS else "no"

print(f"\nNombre de usuario: {nombre}")


print(f"Pasos dados hoy: {pasos_diarios}")
print(f"Calorias quemadas:{calorias_quemada} kcal ")
print(f"¿Cumplió la meta de calorias quedamas por dia?: {verificador_meta_cumplida}")

Ejercicio 5: Sistema de notas

Solución:
###### Sistema de notas

calificacion = float(input("Ingrese la calificación numérica (0-10): "))


equivalencia= ""
if calificacion>=9 and calificacion <=10:
equivalencia= "A"
elif calificacion>=8 and calificacion <9:
equivalencia="B"
elif calificacion>= 7 and calificacion <8:
equivalencia = "C"
elif calificacion>= 6 and calificacion <7:
equivalencia = "D"
elif calificacion>= 0 and calificacion <6:
equivalencia = "F"
else:
equivalencia="Valor desconocido"

print(f"La calificación: {calificacion} equivale a: {equivalencia} ")


Ejercicio 6: costo de valor de envío

Solución:
#Sistema de envíos

destino=input("Ingrese su destino (nacional o internacional): ")


peso= float(input("Ingrese el peso de su paquete en kg: "))
valor_final=0

destino= [Link]().strip()

if destino == "nacional":
valor_final=10*peso
elif destino== "internacional":
valor_final=20*peso
else:
valor_final= "el valor ingresado es incorrecto"

print(f"Para su destino {destino} su paquete de {peso}kg tiene un costo de $ {valor_final}")

Ejercicio 7: Sistema de autenticación


Solución:
#Sistema de autenticación

USUARIO= "andres"
PASSWORD= "123abc"

user= input("Ingrese su usuario: ")


password= input("Ingrese su contraseña: ")

if user== USUARIO and password== PASSWORD:


print("Bienvenido al sistema")

elif user== USUARIO and password!=PASSWORD:


print("Contraseña incorrecta")
elif user!= USUARIO and password==PASSWORD:
print("Usuario incorrecto")
else:
print("Usuario y contraseña incorrectos")
Ciclos: while y for
While while condición:
Código a ejecutar

While con contador contador = 0


while condición :
código a ejecutar
contador +=1

contador = 0

while contador <=20:


print(contador)
contador+=1 #contador = contador + 1

For for variable in secuencia:


código a ejecutar
Tipos de secuencia:

lista = ["a", "b", "c"] va iterando cada elemento de la lista i


for i in lista:
print(i)

cadena = “cadena” va iterando cada carácter de la cadena en i


for i in cadena:
print(i)

dicccionario= ["a":1, "b":2, "c":3] va iterando cada etiqueta del diccionario(a,b,c)


for i in diccionario:
print(i)

dicccionario= ["a":1, "b":2, "c":3] va iterando cada valor de cada etiqueta (1,2,3)
for i in [Link]():
print(i)

for i in range(inicio, final, paso): va iterando cada valor desde inicio hasta final (sin ese)
print(i)
For con variable que no vamos a utilizar for _ in secuencia: el guion bajo se usa cuando ese valor no se va
usar en el código a ejecutar
código a ejecutar

código a ejecutar

for _ in range(5):
print("Imprimir varias veces")
salida

Comprehesion for Es una forma corta de crear un bucle for y guardar todo en una colección (parecido a evaluar
func)
list=[expression for variable in elementos_iterables]
list=[x+1 for x in [1,2,3,4,5]] x toma los valores de la lista y luego se suma 1 a cada uno

Break y continue en ciclos se colocan en alguna parte dentro del ciclo, generalmente luego de un condicional
break: rompe el ciclo continue: salta la iteración actual
Break: Cuando el programa ejecuta break, el ciclo se rompe inmediatamente, sin importar si quedan iteraciones pendientes.

Continue: Cuando el programa ejecuta continue, se salta el resto del código de la iteración actual y vuelve al inicio del ciclo para comenzar la
siguiente iteración. Es una forma de decir si no se cumple esta condición saltamos y seguimos iterando.

list=(1,2,3,4,5,6)

for i in list:
if i==3:
continue
print(i)
Salida
Tipos de secuencia para for:

lista = ["a", "b", "c"] va iterando cada elemento de la lista i


for i in lista:
print(i)

cadena = “cadena” va iterando cada carácter de la cadena en i


for i in cadena:
print(i)

dicccionario= ["a":1, "b":2, "c":3] va iterando cada etiqueta del diccionario(a,b,c)


for i in diccionario:
print(i)

dicccionario= ["a":1, "b":2, "c":3] va iterando cada valor de cada etiqueta (1,2,3)
for i in [Link]():
print(i)

Range range(inicio, final, paso) Genera una secuencia de números int


for i in range(inicio, final, paso):
print(i)

range(5) Genera una secuencia desde 0-4 (empieza en 0 siempre, no incluye el valor final)
range(2, 10, 3) Genera una secuencia desde 2, 5, 8 (empieza en 2 y va sumando 3 para el siguiente)
Ejercicios
Ejercicio 1: Suma de los primeros n números
# suma de los primeros "n" números
MAXIMO= 5
numero = 1
acumulador_suma = 0

while numero <=MAXIMO:


acumulador_suma+= numero
numero+=1

print(acumulador_suma)

Ejercicio 2: Menú iterativo

#Menú iterativo

salir= False
while not salir:
print("Menú")
print("1. Crear cuenta")
print("2. Eliminar cuenta")
print("3. Salir ")

opcion= int(input("Escoje una opción: "))


if opcion== 1:
print("Creando tu cuenta... \n")
elif opcion== 2:
print ("ELiminando tu cuenta...\n")
elif opcion== 3:
print("Saliendo de la cuenta...\n")
salir= True
else:
print("saliendo del sistema")

Ejercicio 3: Cajero automático

#Menú Aplicación de cajero automático

salir= False
saldo= 1000
retiro=0

while not salir:


print()
print("Operaciones que puedes realizar:")
print("1. Consultar saldo")
print("2. Retirar")
print("3. Depositar")
print("4. Salir")
opcion=int(input("Escoge una opción: "))

if opcion == 1:
print(f"El saldo de su cuenta es $ {saldo}")
elif opcion == 2:
retiro= float(input("¿Cuánto deseas retirar?: "))
if retiro<saldo:
print(f"Has retirado $ {retiro}")
saldo = saldo - retiro
print(f"El saldo de su cuenta es $ {saldo}")
else:
print("No tienes fondos suficientes para hacer la transacción")
elif opcion == 3:
deposito = float(input("¿Cuánto deseas depositar?: "))
saldo = saldo + deposito
print(f"El saldo de su cuenta es $ {saldo}")

elif opcion==4:
salir=True

print("Gracias por visitarnos")

Ejercicio 4: Calculadora
Solución:

salir = False

while not salir: # while salir == False

print("\n Operaciones que puedes realizar:")


print("1. Suma ")
print("2. Resta")
print("3. Multiplicación")
print("4. División")
print("5. Salir ")
try:
opcion= int(input("Elija una de las opciones: ").strip())
except ValueError:
print("\nUsted ha ingresado un valor inválido")
print("Ingrese por favor un entre 1-5")
continue
if 1 <= opcion <=4:
valor1 = int(input("Ingrese el primer valor: "))
valor2 = int(input("Ingrese el segundo valor: "))

if opcion == 1:
suma= valor1+valor2
print(f"Operación: {valor1} + {valor2} = {suma:.2f}")
elif opcion ==2:
resta= valor1-valor2
print(f"Operación: {valor1} - {valor2} = {resta:.2f}")
elif opcion ==3:
producto= valor1 * valor2
print(f"Operación: {valor1} x {valor2} = {producto:.2f}")
elif opcion ==4:
if valor2==0:
print("La división entre cero no está definida")
else: division = valor1 / valor2
print(f"Operación: {valor1} / {valor2} = {division:.2f}")
elif opcion ==5:
salir= True
else:
print("Ingrese un valor válido entre 1-5")

print("Gracias regresa pronto!")

Ejercicio 5: Validación de password


Solución:

salida=False
while not salida:

password = input("Ingrese una contraseña que contenga 6 caracteres al menos: ")

if len(password)<6:
print("Contraseña inválida")
else:
print("password válido")
salida= True

Ejercicio 6: adivina el número


Solución
from random import randint

salida=False
intentos= 10

numero = randint(1, 50)

print("¿Estas listo para adivinar el número secreto?")


print(f"Tienes {intentos} intentos para lograrlo")
while intentos!=0:
try:
numero_adivinado = int(input("Ingrese el número secreto: "))
except ValueError:
print("Debes ingresar un número valido")
continue

if 1<=numero_adivinado<=50:
if numero_adivinado == numero:
print("Felicidades adivinaste el número secreto")
salida = True
break
elif numero_adivinado > numero:
print("El número secreto es menor al que pusiste")
intentos -= 1
print(f"Te quedan {intentos} intentos")

elif numero_adivinado < numero:


print("El número secreto es mayor al que pusiste")
intentos -= 1
print(f"Te quedan {intentos} intentos")
else:
print("El número está fuera del rango")
intentos -= 1
print(f"Te quedan {intentos} intentos")
if intentos ==0:
print(f"Lo siento se te acabaron los intentos, el número secreto era {numero} ")

Ejercicio 7: dibujar un triangulo con asteriscos y espacios

filas= int(input("Ingresa el numero de filas: "))


espacios=" "

for i in range(filas):
print(espacios*(filas-i-1)+"*"*(i*2+1))
salida

Listas
Listas lista=[“a”, 1, False, [a,b], 2.5]
 Son mutables (se puede agregar, quitar, modificar elementos)
 Son ordenadas: cada elemento tiene un índice
 Se pueden integrar de varios tipos de elementos en una misma lista lista=[“a”, 1, False, [a,b], 2.5]

Índices de una lista izquierda a derecha: 0, 1, 2… derecha a izquierda: -1, -2, -3,….
Largo de una lista len(lista)
Máximo y mínimo de una lista max(lista) – min(lista)
Suma de todos los elementos de la lista sum(lista)
Acceder a elementos de una lista por índice lista[índice] accede al elemento en la posición índice
Modificar un elemento de una lista lista[índice]= a cambia el elemento que está en la posición índice por lo que
este en a

Métodos de lista [Link](a) Agrega un elemento “a” al final de la lista


[Link](índice, b) Agrega el elemento “b” en la posición “índice”
[Link](c) Elimina el elemento “c” de la lista, si no hay c da un error
Solo elimina el primer elemento “c” que encuentre
[Link](índice) Elimina el elemento que este en la posición “índice”

del lista[índice] Elimina el elemento que este en la posición “índice”


[Link](a) Cuenta cuantas veces aparece el elemento “a” en la lista

[Link]() Elimina todos los elementos de la lista dejándola vacía


[Link](“elemento”) Arroja el índice del primer “elemento” que aparece en la lista
[Link](key=None, reverse=False) Ordena una lista numérica o de strings únicamente

False: ascendente, True: descendente

Crear sublistas lista[a:b] Crea una sublista desde el índice “a” hasta “b” sin incluir a
“b”

Obtener el último dato de una lista lista[-1] Obtiene el último dato de una lista

Ejercicios
Ejercicio 1: Lista de reproducción o play list
Solución

canciones= [
'canción 1',
'canción 2',
'canción 3',
'canción 4',
'canción 5',
'canción 6',
'canción 7',
'canción 8',
'canción 9',
'canción 10'
]
playlist=[]
salida=False
print("Bienvenido a tu playlist")
while not salida:
try:
numero_canciones=int(input("¿Cuántas canciones deseas agregar? "))
except ValueError:
print("El valor ingresado es inválido")
continue
salida = True
contador=0

while contador < numero_canciones:


try:
cancion= input(f"Ingrese la {contador+1}º canción: ")
verificador= [Link](cancion)
[Link](canciones[verificador])
contador+=1

except ValueError:
print("La canción que escribiste no está en la lista, intenta con otra")

[Link]()
print("Tu playlist es:")
contador=1
for i in playlist:
print(f"{contador}. {i} ")
contador+=1

Ejercicio 2: Promedio de calificaciones

Solución

## Promedio de calificaciones
calificaciones=[]
contador=1
salida=False

while not salida:


try:
n_calificaciones= int(input("Ingrese la cantidad de calificaciones: "))
except ValueError:
print("En valor indicado es incorrecto, ingrese un valor numérico ")
salida= True

while len(calificaciones) < n_calificaciones:


try:
calificacion=float(input(f"Ingrese la {contador}º calificación: "))
except ValueError:
print("Has ingresado un valor inválido, ingresa una nota entre 0-10")
continue
if 0 <= calificacion <= 10:
[Link](calificacion)
contador += 1
else:
print("Has ingresado un valor inválido, ingresa una nota entre 0-10")
continue

promedio= sum(calificaciones)/len(calificaciones)
print(f"Las notas subidas son:")
for i in calificaciones:
print(i, end=" + ")
print(f"\nEl promedio es: {promedio:.2f}")

Tuplas
Tuplas tupla=("a",1,"c",False) ó tupla = "a",1,"c",False
Acceder una tupla tupla[índice] Se accede a un elemento en la posición “índice”
Acceder tupla anidada tupla[índice][índice] se colocan más corchetes para seguir accediendo

Tupla de un elemento tupla= a, se debe colocar una coma al final de ese elemento
Desempaquetado de tuplas Es tomar los elementos de una tupla y guardarlos por separado en variables

Combinar listas con tuplas


curso=[
("andres", 12, False),
("joaquin", 15, False),
("rosa", 11, True),
("roy", 11, False),
("santi", 13, True)
]
contador=1
for i in curso:
nombre, edad, aprobado = i
print(f"{contador}. Nombre:{nombre}, Edad:{edad}, Aprobado:{aprobado}")
contador +=1

Conjuntos (set) set={2, “a”, False, 3.1}


- No permite duplicados, si se colocan elementos iguales solo toma uno
- No tiene índices (posiciones) ni orden (a veces puede imprimir números en orden, pero no siempre)

Métodos de los conjuntos [Link](a) Agregar un valor al set


[Link](a) Elimina el elemento a del set (si no existe da error)
[Link](a) Elimina el elemento a del set (si no existe NO da error)
[Link](a) Elimina un elemento al azar y te lo devuelve
[Link]() Elimina y deja vacio el set
a in set Comprobar si existe un elemento a en el set (Arroja False- True)

Largo de un set len(set)


Operaciones con sets UNION: a | b
INTERSECCIÓN: a & b
DIFERENCIA: a – b

Ejercicios
Lista de suscriptores
Solución

#Definir el set inicial

suscriptores=set()

numero_suscriptores =int(input("Ingrese el número de suscriptores: "))

for _ in range(numero_suscriptores):
[Link](input("Nuevo suscriptor (email): "))
print(f"La lista de suscriptores: {suscriptores}")

#Verifica si un suscriptor ya esta en la lista


nuevo_suscriptor=input("Proporciona el nuevo suscriptor: ")
if nuevo_suscriptor in suscriptores:
print(f"EL nuevo suscriptor ya esta en la lista ")
else:
[Link](nuevo_suscriptor)
print("El nuevo suscriptor se ha agregado a la lista")
print(f"Lista de suscriptores: {suscriptores}")

#ELiminar un suscriptor

suscriptor_eliminar= input("Proporciona el suscriptor a eliminar: ")


[Link](suscriptor_eliminar)
print(f"Se ha eliminado el suscriptor: {suscriptor_eliminar}")
print(f"Lista de suscriptores: {suscriptores}")

#Verificamos la cantidad total de suscriptores


cantidad_suscriptores= len(suscriptores)
print(f"La cantidad total de suscriptores es: {cantidad_suscriptores}")

#Mostar la lista de todos los suscriptores


contador=1
print("---------Lista de suscriptores-------")
for i in suscriptores:
print(f"{contador}. {i} ")
contador+=1

Diccionarios
Diccionarios dict={clave1: valor1, clave2: valor2, …}
Clave:
 Puede ser str, int, float, bool, tuple (solo objetos inmutables)
 No puede haber dos claves iguales
 Si la clave es string se usa comillas, para los otros no.
Valor:

 Puede ser cualquier objeto

Acceder a un valor por la clave dict[clave1]


[Link](clave1) no da error si la clave no existe da NONE

Modificar un valor del diccionario dict[clave]= valor_nuevo Cambia el valor que este alojado con clave por un
valor_nuevo
Eliminar elemento del dict[clave] Elimina el valor que este en la clave
Métodos de un diccionario [Link](clave, message) Obtiene el valor “clave” y si no hay devuelve “message”
[Link]() Devuelve todas las claves
[Link]() Devuelve todos los valores
[Link]() Devuelve todas las claves y valores
[Link](clave,message) Elimina el valor de acuerdo a la clave, si no hay devuelve “message”
[Link]() Elimina y devuelve el último elemento clave-valor
[Link](dict2) une los elementos los diccionarios dict y dict2 si hay claves
repetidas se conserva los datos del segundo dict2
[Link]() elimina todos los elementos del diccionario

[Link](clave, valor) Crea un elemento y asigna un valor pero si la clave ya existe


solo devuelve el valor de esa clave existente
Diccionario dentro de otro diccionario
dict ={
"subdict1" : {
"clave1": "valor1",
"clave2": "valor2",
"clave3": "valor3"
},

"subdict2" : {
"clave1": "valor1",
"clave2": "valor2",
"clave3": "valor3"
}
}

Acceder a un elemento: dict["subdict1"]["clave1"] [Link]("subdict”).get("clave1")


Incluir un nuevo elemento: dict["subdict3"]= {"clave1": "valor1"
}
Cambiar un elemento: dict["subdict1"]["clave1"]= "nuevo_valor"
Diccionario dentro de lista
list =[
{
"clave1": "valor1",
"clave2": "valor2",
"clave3": "valor3"
},

{
"clave4": "valor4",
"clave5": "valor5",
"clave6": "valor6"
}
]

Acceder a un elemento: list[0]["clave1"]


Incluir un nuevo elemento: [Link]({"clave1": "valor1"
})

Ejercicios
Inventario

inventario=[]

productos= int(input("¿Cuántos productos deseas agregar al inventario?: " ))

for i in range (productos):


print(f"Proporciona los valores del producto {i+1}:")
nombre= input("Nombre: ")
precio = float(input("Precio: "))
cantidad = int(input("Cantidad: "))
[Link]({"Id": i,"Nombre":nombre, "Precio":precio, "Cantidad":cantidad})

print(len(inventario))
print (inventario)

id= int(input("Ingresa el ID del producto a buscar: "))

nombre=inventario[id]["Nombre"]
precio=inventario[id]["Precio"]
cantidad=inventario[id]["Cantidad"]

print("\nInformación del producto encontrado:")


print(f"Id: {id} ")
print(f" Nombre:{nombre} ")
print(f" Precio:{precio} ")
print(f" Cantidad:{cantidad}")

print("\n--- Inventario Detallado Actualizado---")


for i in range(len(inventario)):
nombre = inventario[i]["Nombre"]
precio = inventario[i]["Precio"]
cantidad = inventario[i]["Cantidad"]
print(f"Id: {i} ")
print(f" Nombre:{nombre} ")
print(f" Precio:{precio} ")
print(f" Cantidad:{cantidad}")
Listas comprimidas [expresion for elemento in iterable if condición ]
cuadrados = [x**2 for x in range(10)]

print(cuadrados)
Aplica x 2 para cada x en el arreglo
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
(0-9) y guarda al final en una lista
los resultados.
pares = [x for x in range(10) if x % 2 == 0] Para cada valor x en el arreglo (0-
print(pares) 9) guardar en una lista si ese
valor al dividir entre 2 da residuo 0
# [0, 2, 4, 6, 8]
(condición de paridad)

palabra = "python" Colocar en mayúscula cada


mayusculas = [[Link]() for letra in palabra] carácter de la cadena palabra y
guardar en una lista
print(mayusculas)

# ['P', 'Y', 'T', 'H', 'O', 'N']

resultado = ["par" if x % 2 == 0 else "impar" for x in range(5)]

print(resultado)

# ['par', 'impar', 'par', 'impar', 'par']

pares_cuadrados = [(x, x**2) for x in range(5)]

print(pares_cuadrados)

# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]#
Sets (conjuntos)

Casting (cambiar un tipo de dato a otro)


Tipos primitivos:
 int(obj) → convierte a entero
 float(obj) → convierte a decimal
 bool(obj) → convierte a booleano (True o False)
 str(obj) → convierte a cadena de texto
Contenedores / estructuras de datos:
 list(obj) → convierte a lista
 tuple(obj) → convierte a tupla
 set(obj) → convierte a conjunto (set)
 dict(obj) → convierte a diccionario (normalmente a partir de pares de clave-valor)

Funciones
Syntaxis
def nombre_funcion (parametro1, parametro2, … , parámetro n):
cuerpo de la función
return variable1_, variable2, … variable n
Parámetros con distintos tipos de datos
def persona(nombre: str, edad: int, altura: float, activo: bool):
print(nombre, edad, altura, activo)

La funcion puede tener muchos returns diferentes con condicionales.

Resumen
Cadenas y colecciones
Descripción Cadena Lista Tupla Diccionario Set
¿Qué son? Cadenas de caracteres  colección de elementos
Si Si Claves únicas, No permitidos
Elementos duplicados
Valor: si pueden repetirse (aparecen una sola vez cada uno)
Si Si Si Índice implícito: No
Índices
El índice es el nombre de la clave
Mutabilidad Si No Si Si

Sintaxis v=”letras ” Corchetes Paréntesis Llaves con clave Llaves


v=[a , b , 24 , 12 , False]v=(a , b ,24 ,12 , False) v={a :1 , b :2 , c :3 } v={a , b , c }
Casting str() list () tuple () dict () set ()
Acceso a elementos cadena[0] lista[0] tupla[0] dict[‘a’] Se consulta con in
Contar cuantas veces
aparece un elemento o
cadena. count (“ x ”) lista .count (“ x ”) tupla . count (“ x ”) list (dic . values ()).count (2)
subcadena
Contar cuantos len(cadena) len(lista) len(tupla) len(dicccionario) len(conjunto)
elementos hay
cadena=cadena +” carácter ” lista .append (elemento) tupla = tupla + (4,5, 3)
conjunto . add (4)
agrega un solo elemento al final
se crea otra tupla
dic [' clave' ]=b agrega un solo elemento al final
crea una nueva clave con un valor “b”

lista .insert (a , b) conjunto . update([5 , 6])


Agregar elementos Agrega el valor “b” en la posic “a” d . update({' b ' :3 , ' c ' :4 })
Agrega varios valores al final de un
crea o actualiza varias clave valor iterable

lista .extend ([4 , 5]) puede ser también con un iterable


Agrega varios valores al final de un
iterable d . update([(' d ' ,5),(' e ' ,6)])
No se puede
cadena=cadena .replace (a , ) lista .remove(3) dic . pop(' a ' ) conjunto . remove(3)
Elimina el elemento “a” Elimina el elemento “3” que aparezca Elimina la clave a y devuelve el Elimina el elemento “3” si no hay lanza
primero (solo elimina uno) valor. El diccionario queda sin esa error
clave ni valor .
lista . pop(1) , conjunto . discard (3)
Elimina el elemento 1 de la lista y dic . popitem() Elimina el elemento “3” si no hay no
lanza error
Quitar elementos lo devuelve, la lista queda sin ese Elimina el ultimo clave valor del
elemento. diccionario devuelve esos dos
valores conjunto . pop(),
lista .clear () Elimina el elemento al al azar
Elimina todos los elementos de la dic . clear ()
lista Elimina todos los elementos del conjunto . clear ()
diccionario Elimina todos los elementos

Quitar espacios
Imprimir sin espacios
Print (“ cadena ” ,end =””)
Obtener subcadenas o
partes
cadena [ x :a ]
Obtiene una cadena

cadena [ : a ]
Obtiene todos los elementos antes
de a sin a
cadena [ a : ]
Obtiene todos los elementos antes
de a sin a

lower() → convierte todo el


texto a minúsculas
upper() → convierte todo el texto a
mayúsculas
capitalize() → pone en mayúscula
la primera letra
title() → pone en mayúscula la
primera letra de cada palabra
strip() → elimina espacios al inicio
y al final
lstrip() → elimina espacios del lado
izquierdo
rstrip() → elimina espacios del lado
derecho

split() → divide la cadena en


una lista

join () → une una lista de


cadenas en una sola

replace () → reemplaza
parte del texto

find() → devuelve la posición


de un texto

startswith() → verifica si
inicia con un texto

endswith() → verifica si
termina con un texto

isdigit () → verifica si
contiene solo números

isalpha() → verifica si
contiene solo letras

isalnum() → verifica si
contiene letras o números

Condicionales

Bucles
For While
For comprehension:
Una forma más corta de hacer un for
variable=[expression for variable in elementos_iterables]
si se cambia los corchetes por {} se forma un set o un
diccionario.

Ejemplo:
lista=[x∗2 for x ∈range(5)] en una lista de 0-5, el for toma valor por valor y los multiplica
por 2

Funciones
- Se puede usar más de un return en una misma función

Códigos interesantes
Crear un objeto que no pueda repetirse o duplicarse con ninguno
objeto=object()
objeto=object()

Crear una bandera en un bucle


Una bandera es una variable auxiliar que se activa y se desactiva mediante condiciones dentro de un ciclo. Sirve para indicar que, cuando ocurre una
condición específica, en la siguiente iteración del ciclo se ejecute una acción diferente. Una vez ejecutada esa acción, la bandera se desactiva y el ciclo
continúa de manera normal.

Ejemplo de implementación:

bandera=0

cadena="abcrgcertcmd"
nueva_cadena=""
for i in cadena:
if bandera==1:
nueva_cadena+=[Link]()
bandera=0
elif i=="c":
nueva_cadena+=i
bandera=1
else:
nueva_cadena+=i

print(cadena)
print(nueva_cadena)

Colocar más de un método en una cadena a la vez


En una cadena se puede colocar mas de un método a la vez

cadena="the-stealth-warrior"

nueva_cadena=[Link]("-", " ").replace("_", " ")


print(cadena)
print(nueva_cadena)
Variables
Variable
Es un contenedor de un solo valor que puede ser una letra, un número o un conjunto de estos.

Tipos de variables
Variable de
número entero Nombre_de_variable = numero
INT
Variable de En Python debes colocar los decimales con
número Nombre_de_variable = número_ punto no con coma, la coma es un separador de
decimal decimal otras estructuras.
FLOAT
Variable String Son variables que
(caracter) representan
caracteres estos
STRING pueden ser letras Nombre_de_variable = “caracter(es)”
o incluso número
pero no son
operables
Variable de Es una variable
Bool (verdadero que puede tener
o falso) uno de dos
valores TRUE o
BOOL FALSE
Declarar varias Nombre_de variable_1, nombre de Solo se pueden declarar variables del mismo
variables en variable_2, nombre de variable_n = tipo. No puedo combinar Sting con numéricas.
una sola línea valor_de_ variable_1, valor_de_
variable_2, valor_de_variable_n

Errores al declarar variables


- Colocar un número al inicio del nombre de la variable
- Colocar guion como parte del nombre de la variable
- Colocar espacios en el nombre de la variable
-

Contenedores:
Lista, tupla, conjunto, diccionario

 Las listas son secuencias mutables de valores.


 Las tuplas son secuencias inmutables de valores.
 Los conjuntos se utilizan para representar conjuntos únicos de elementos, es decir, en un conjunto no pueden existir dos
objetos iguales.
 Los diccionarios son tipos especiales de contenedores en los que se puede acceder a sus elementos a partir de una clave
única.


Fuente: [Link]

Input =crear una entrada para el usuario. Osea que hacemos un botón para que el usuario ingrese un valor

Listas
Conceptos importantes
Una lista es una estructura de datos y un tipo de dato en python con características especiales. Lo especial de las listas en Python es que nos
permiten almacenar cualquier tipo de valor como enteros, cadenas y hasta otras funciones;
Fuente: [Link]

Array

Un array, es un tipo de dato estructurado que permite almacenar un conjunto de datos homogéneo, es decir, todos ellos del mismo tipo y
relacionados.
Elementos
A los datos almacenados en un array se les denomina elementos;
Rango, tamaño

Al número de elementos de un array se les denomina tamaño o rango del vector.


Fuente: [Link]

Ejemplo:

RANGO, TAMAÑO =3

Nombre_lista= [ elemento1, elemento2, elemento3, …]

POSICIÓN
0 1 2

Tipos de listas
Las listas en Python son:

 heterogéneas: pueden estar conformadas por elementos de distintos tipo, incluidos otras listas.
 mutables: sus elementos pueden modificarse.

Fuente: [Link]

Notas importantes
- No use el nombre “lista” como variable porque la función lista es otra cosa

Codes

Crea una
Crear Nombre_lista= [elemento1,
lista de
una lista elementos
elemento2, …]
Crear
Crea una Nombre_lista= [ ]
una lista lista vacía Nombre_lista=list()
vacía

Acceder Selecciona
a un un elemento
de la lista
element dependiendo
Nombre_lista [ posición]
o de una de sus
lista posiciones
Las posiciones empiezan desde 0 en adelante, es decir el primer elemento
tiene la posicion “0” y el segundo la posución “1”
Agregar
ítems o
element Ingresa un
Nombre_lista.append(“nuevoele
os a una elemento en
ment
lista una lista
o”)
creada

.append(
) Nota: el valor se ingresa siemre al final de la lista

Devolver
Devuelve el
la número de
posición posición de
de una algún Nombre_lista.Index(“elemento”)
lista elemento
especifico de
una lista
.index()
Cuantas
veces se
Devuelve el
repite numero de
un veces que se
element repite un Nombre_lista.count(“elemento”)
o en una elemento
dado de una
lista lista

.count()
Agregar Si se usa esta
element función se
os de agregan los
elementos
otra de otra lista
Nombre_lista.extend([a,b])
lista por
separado,
.extend Con append
solo una lista
se agrega
como un
solo
elemento

Quitar
element Elimina un
o de elemento Nombre_lista.
lista especifico de remove(elemento)
la lista

.remove Elimina el primer elemento que se uindiqye en el


parentesis en este caso la primera c
Eliminar
un Elimina un
element elemento de
o de una la lista dando Name_list.pop(posición)
lista la posición
del elemento

.pop
Cambiar
de Cambia la
posición posición de
a todos todos los
elementos
los
de una lista Nombre_lista. reverse( )
element colocando
os de los últimos
una lista primeros y
viceversa
.reverse

Sacar Sacamos del


los vector a los
element elementos
de una lista y
os de los
una lista colocamos
una alado
del otro

Tamaño
de una Arroja el
lista número de
Variable= len (nombre_lista)
(cantida elementos
de una lista
d de
element
os)

len()

Imprimir De una lista


los va
element imprimiendo
os de todos los
valores línea
una lista
por línea
iterando

Encontra
r el
número Nos arroja el
Variable=max (name_list,
valor
máximo key=int)
máximo o
o mínimo de
variable=min (name_list,
key=int)
mínimo una lista
de una Nota: no es necesario el key si la lista ya tiene valores
lista
numericos. Ahora si la lista son str entoces se coloca el
key

Toma los
Tomar caracteres
caracter que indiquen
Variable[num_inicial :
es de en un rango
num_final ]
una determinado
de una
palabra palabra
[Link]

Diccionarios
Definir diccionarios
Acceder elementos de un diccionario

Modificar un valor de un diccionario

[Link]

Funciones

Salida:
Imprimir
iterando Se imprimen valores de
variables separadas de un
Print(variable, varible2, …,
un carácter que coloquemos sep=”carater”)
símbolo

Salida:

Cada coma sirve para separar


Imprimir cada variable de cada texto y en
varias Imprime varias variables print(“text “,variable1, la pantalla saldrá un espacio
cosas y textos espaciando cada variable2) Salida: automáticamente aun cuando
con uno al colocar la coma
no coloquemos espacios entre
espacio comas.
Imprimir El signo más indica unir sin
varias print(“text “+variable1+
Imprime varias variables espacio, la coma unir con un
cosas y textos sin espaciar unos variable2)
sin de otros
Salida: espacio
espacio

Salto de línea
Ejemplo 1:

Salida:
Imprimir
e
Insertar Permite que la siguiente
línea salga en la misma
print(“text “, end=””) Ejemplo 2:
variable línea
sin salto
de línea
Salida:

Salto de Inserta un salto de línea


Ejemplo 1 Se debe colocar el \n siempre
sea antes o después de
línea dentro de las comillas
las palabras dentro del
(método print Si se coloca antes del texto
2)
produce un salto antes y si se
coloca después del texto
produce un salto después.
Salida:

Ejemplo 2
Salida:

Redondear /truncar

Redonde
Redondea un número Round()
ar

Redonde
ar con
una Se puede imprimir un
número decimal con la
cantidad cantidad de decimales Round(Variable_name, 2)
de que queramos Salida:
decimale
s

Controla De una variable decimal print(f{variable:.nf})


con muchos decimales, lo
r el
escribe con los decimales
número que se desee
de
decimale
s que Salida:
aparece
n

De un numero dado print( “{0:nf}”.format(decimalnumbe


limita sus decimales a los r)
que indiquemos
Pasar minúsculas a mayúscula
Cambiar
una
frase a
minúscul Cambia una frase a todas Variable_textname.
las letras minúsculas con
as con la solo la primera capitalize ()
primera mayúscula Salida:
en
mayúscu
la
Colocar
las Cambia todas las palabras Variable_textname.titl
primeras colocando la primera
letras en letra en mayúscula y el e ()
resto en minúscula
mayúscu
las

Colocar
todas las Variable_textname.up
Coloca todas las letras en
letras mayúscula per ()
mayúscu
las

Colocar
todas las Variable_textname.low
Coloca todas las letras en
letras minúscula er ()
mayúscu
las

Contar el número de letras específicas

Contar
el Cuenta el numero de Variable_textname.cou
número letras específicas que se
de letras indique en los paréntesis nt (“letter”)
entre comillas
especific
as

Cuenta el número de
letras específicas, sin
Variable_textname.
importar si son lower().count (“letter”)
mayúsculas o minúsculas
Espacios en texto
En la primera línea vemos como
sale con espacios y en la
segunda sin ningún espacio
Quita todos los espacios Variable_textname.stri
en blanco al principio y al p() Notice that in even with the
final de un texto
Salida: strip code in the sentence we
have one automatic space in
blank to separate each word.
Quitar
espacios
en
blanco al Variable_textname.lstr
Quita solo los espacios en
principio blanco del inicio ip()
y al final Salida:

Variable_textname.rstr
Quita solo los espacios en
blanco del final ip()
Salida:

Eliminar
todos Es importante que dentro de
los Reemplaza un texto por Variable_textname.rep las primeras comillas haya un
espacios otro, en este caso
en reemplaza los espacios lace(“ ”,””) espacio y dentro de las
blanco en blanco por uno vacío. Salida: segundas comillas no haya
de un nada
texto
Escribir
una Escribe la variable dentro print(f”{Variable:numb
de un print y adiciona el
variable numero de espacios que er}”) Salida
con indiquemos
espacios

Convertir un tipo de variable de otra – Casting

Notese que al colocal str(b) el


numero b se convierte en un
Convertir
srt( number variable) símbolo string que al colocar
número a string
con otro y mas se concatena
Salida: (une)

Convertir string
en número Int( string variable)
entero
Salida:

Convertir string Float(string variable)


en un numero
decimal
salida:

Notice that if you put an “f”


after the parenthesis and before
the quotation marks all that is in
Convertir keys is converted to string and
print(f“text {
variables
float/int_varible }”) Salida: you not need to put the code
método 2
str() and + sign or commas.
It is a easier manner to
transform numbers in string

Colocar número de decimales- redondear y truncar

Math symbols and operations


Add +
Subtract -
Multiply *
Divide /
Divide and // 13//2 6
truncar
Divide the left % 13%2 1
to the right and
give you the
remainder
Exponent ** 4**2 16
pow(number, exponent) pow(4,2) 16
Square root Import math
[Link](number)

use factionary exponent


Raiz con
cualueir indice
Coloca e
Exponential elevado [Link](x)
a la
potencia
que este
dentro
del
paréntes
is (x)
e
Coloca
Exponential Coloca e math.expm1(x)
negative elevado
a la
potencia
que este
dentro
del
paréntes
−1
is ( x )
e
A un
Round up to the decimal
[Link](number)
next whole lo
redonde
number a al
siguiente
número
entero
mayor
A un
Round down to decimal
[Link] (number)
the next whole lo
redonde
number a al
anterior
numero
entero
inferior

Fuente:

[Link]
Conditionals

Se crea
una
condición
que al if condition:
Condiciona cumplise Result1
l If, else
da el g
resultado 1 else:
y si no se
cumple da
Result2
el
resultado 2
if condition:
Result1
Se crea elif:
una
condición
Result2
Multiples
multiple elif:
condiciona
les
con un
resultado
Result3
en cada …
condición elif:
Resultn
Algebra boolena

Common errors
Bucles
Bucle: es todo el cuerpo que se repite

Iteración: es cada una de las repeticiones del bucle

While
Estructura

Errors al declarer loops

- In a while loop is important to declare the variable before the loop


Good Error

Matriz para comprender bucles

a=0 a=1 a=1 a=2


b=1 b=1 b=2 b=3

b es menor que 25? Si b es menor que 25? Si b es menor que 25? Si b es menor que 25? Si
Imprime b=1 Imprime b=1 Imprime b=2 Imprime b=2

a=1 , b=0+1=1 a=1 , b=1+1=2 a=2 , b=1+2=3 a=3 , b=2+3=5

Salida
a=0 a=1 a=2
b=1 b=2 b=4

b es menor que 25? Si b es menor que 25? Si b es menor que 25? Si


Imprime b=1 Imprime b=2 Imprime b=4

a=1 a=2 a=4


b=1+1=2 b=2+2=4 b=4+4=8

Salida :

Tipos de whiles

While
con True
Se ingresa
un valor
numérico y
se va Variable=1
While de sumando
conteo un valor While condition:
hasta que variable=variable +1
ya no
cumpla la
condición
While Lo que pasa es esto:
i=1
Con
¿i es menor o igual que 3?
condición si
inicial Imprime i
i=1+1=2

i=2
¿i es menor o igual que 3?
si
Salida: Imprime i
i=2+1=3

i=3
¿i es menor o igual que 3?
si
Imprime i
i=3+1=4

i=4
¿i es menor o igual que 3?
No
Fin del bucle
Imprime la sigueinte linea fuera del bucle
“El programa ha finalizado”

For
Estructura del for

Variaciones de la estructura

Se puede utilizar cualquier letra, o un guion bajo

for cualquier letra in

for _ in

in lista

Bucle “for” con lista

Lista: son una serie de valores que se colocan entre paréntesis o entre comillas que indican cuantas veces se ejecutara el cuerpo del bucle

Ejemplo 1: Serie numérica


En este ejemplo tenemos después de “in” un corchete con 5 caracteres. Esos caracteres no importan que números sean simplemente indican cuántas veces
se repetirá el cuerpo del bucle. Ósea en este ejemplo 5 veces

Ejemplo 2: Serie de palabras entre comillas

Se puede colocar una lista entre corchetes de palabras separadas por comas y entre paréntesis

El resultado será

Nótese que el número de veces que se repite coincide con el número de palabras

Ejemplo 3: Palabra entre comillas

Se puede colocar una o varias palabras entre paréntesis, el bucle se crea contando el número de caracteres de la palabra o frase:
En este ejemplo cada letra incluso el espacio cuentan 9 caracteres por lo tanto el bucle se repite 9 veces

Bucle “for” con “range”

Ejemplo 4: Función range (número)

Para no escribir lo anterior se puede colocar range(número)

En este caso al colocar el número 3 se repetirá el bucle 3 veces

Nota: Range (número)

Crea una lista de números que van desde cero hasta un número antes del número dentro del paréntesis
Notese que se crea una lista de números que van de 0 a 9 (sin el 10)

Range (a,b)

- Se forma una lista que comprende entre los valores a y b (sin incluir el valor de “b”)

Range (a,b,c)

- Se forma una lista que comprende los valores a y b contados de manera que indica el valor de c

Ejemplo:

Range(100,200,2) Significa que se crea una lista en el intervalo ¿ y se cuentan de 2 en 2.


[Link]
Números complejos en Python
Definir números complejos y obtener sus elementos
Definir nombre_numero= a+bj Es importante colocar j y no
números i como tradicionalmente se
complejos nombre_numero= complex(a, b) hace
en Python
siendo a la parte real y b la parte imaginaria

Extraer la Las variables que se guardan


parte real e en a y b son de tipo float.
imaginaria nombre_numero.real
de un
número nombre_numero.imag
complejo

Obtener la
conjugada
nombre_numero.conjugate()
de un
numero
complejo
Obtener el
módulo de
un número abs(nombre_numero)
complejo

Obtener el
argumento
(angulo)

Assert
assert en Python se utiliza para verificar que una determinada condición es verdadera en un punto específico de tu código. Si la condición es falsa, se lanza
una excepción AssertionError, lo que indica que ha ocurrido un error en la lógica de tu programa.
Codigo en Colab: [Link]
Librerías
NumPy
Qué es NumPy

NumPy es una librería de Python especializada en el cálculo numérico y el análisis de datos, especialmente para un gran volumen de datos.

Incorpora una nueva clase de objetos llamados arrays que permite representar colecciones de datos de un mismo tipo en varias dimensiones, y
funciones muy eficientes para su manipulación.

La ventaja de Numpy frente a las listas predefinidas en Python es que el procesamiento de los arrays se realiza mucho más rápido (hasta 50 veces
más) que las listas, lo cual la hace ideal para el procesamiento de vectores y matrices de grandes dimensiones.
Fuente: [Link]

La clase de objetos array


Un array es una estructura de datos de un mismo tipo organizada en forma de tabla o cuadrícula de distintas dimensiones
Las dimensiones de un array también se conocen como ejes.

Fuente: [Link]

Vector= lista en 1dimensión

Matriz = lista en 2 dimensiones

Cubo = lista en 3 dimensiones


Códigos numpy
[Link]

SciPy
Qué es SciPy

SciPy proporciona algoritmos para optimización, integración, interpolación, problemas de valores propios, ecuaciones algebraicas, ecuaciones
diferenciales, estadísticas SciPy proporciona algoritmos para optimización, integración, interpolación, problemas de valores propios, ecuaciones
algebraicas, ecuaciones diferenciales, estadísticas y muchas otras clases de problemas.
Fuente:
[Link]

SymPy

Qué es SymPy
SymPy es una biblioteca para crear, manipular y calcular expresiones algebraicas.

SymPy es una biblioteca de Python para matemáticas simbólicas. Su propósito es llegar a ser un sistema de álgebra por computadora (CAS) completo
manteniendo el código tan simple como sea posible para poder ser legible y extensible de manera fácil. SymPy está escrito en Python enteramente.
Fuente: [Link]
Matplotlib
Que es matplotlib

Matplotlib es una librería de Python especializada en la creación de gráficos en dos dimensiones.


Permite crear y personalizar los tipos de gráficos más comunes, entre ellos:
 Diagramas de barras
 Histograma
 Diagramas de sectores
 Diagramas de caja y bigotes
 Diagramas de violín
 Diagramas de dispersión o puntos
 Diagramas de lineas
 Diagramas de areas
 Diagramas de contorno
 Mapas de color
y combinaciones de todos ellos
Fuente: [Link]

Pandas
Pint
Que es pint

Descripción general: La biblioteca "pint" se utiliza para trabajar con unidades físicas y realizar conversiones entre
diferentes unidades de medida. Es especialmente útil en situaciones donde es necesario manejar de manera explícita las
unidades, como en aplicaciones científicas, de ingeniería o de análisis de datos. Sirve para poder manejar cantidades con
unidades.
 Nombre: pint
 Propósito: Manejo de unidades físicas y conversiones.
 Instalación: Puedes instalar la biblioteca utilizando pip: pip install pint
 Página: [Link]
Códigos pint
[Link]
PILLOW
Python Imaging Library (PIL) es una librería gratuita que permite la edición de imágenes directamente desde Python. Soporta una variedad de formatos,
incluidos los más utilizados como GIF, JPEG y PNG. Una gran parte del código está escrito en C, por cuestiones de rendimiento.

Debido a que la librería soporta únicamente hasta la versión 2.7 de Python y, al parecer, no pretende avanzar con el desarrollo, Alex Clark y en colaboración
con otros programadores ha desarrollado Pillow, una bifuración más «amigable», según el autor, de PIL que pretende mantener una librería estable y que
se adapte a las nuevas teconologías (Python 3.x). Por esta razón, recomiendo siempre preferir Pillow en lugar de PIL.
Fuente: [Link]

Instalación
Proceso para verificar si está instalado

Insertamos:

Corremos y nos sale:

Sale un error

Para instalar:

A continuación de la dirección de la carpeta escribimos: python -m pip install pillow --user

Luego se instala:
Volver a comprobar:

Correr el programa:

WORKING WITH PIXEL VALUES AND IMAGES

PIXELES

[Link]
%20representar%20en%20cada%20pixel.
[Link]

RGB:
son tres valores constituidos entre 0 y 255

“El color negro se corresponde con Rojo=0, Verde=0 y Azul=0 y el blanco es la combinación de R=255, Verde=255 y Azul=255.”

[Link]

MAPA DE BITS
Es un formato de imagen que la convierte en una rejilla de pixeles
Se puede ver los pixeles y las coordenadas usando paint
- La opción cuadricula muestra en cuadrados más visibles
- La barra de estado muestra una barra inferior que puede mostrarnos las coordenadas

Las coordenadas de la imagen se determinan así


Obtener los valores RGB en Paint y comprobarlos en VS code
1. Insertas una imagen en Paint

2. La cuadriculamos
3. Con la opción del tintero elegimos uno de los pixeles (hay que agrandar la imagen al máximo para poder visualizar bien)

4. Hay que fijarse en la parte inferior las coordenadas del pixel y luego abrir la opción de editar colores para ver el cogido rgb
5. Entrar en VS Code y escribir

Debe salir así:

Important codes:
Una vez instalado la librería este código permite usarla
Ingresar Convierte Variable=
una imagen
la
en una serie
informaci de datos que
ón de pueden ser [Link](“[Link]”)
una almacenados
imagen y luego
usados en
en una una variable
variable
Muestra Muestra una
una imagen que
imagen previamente [Link]() La imagen debe aparecer al correr el
contenid ha sido
programa
guardada en
a en una
una variable
variable
Obtener Mide el
el tamaño del [Link]
ancho y
tamaño largo y luego
de la lo guarda en
imagen una variable
Convierte la
Ingresar imagen en
la una serie de
informaci información
de sus r,g.b= variable [x,y]
ón de los pixeles que
pixeles se almacena
en una en la
variable variable
dada
Imprimir
el valor print(variable [x,y])
rgb
Cambiar
RGB de
una Toma los
variable [x,y]=(r, g,b) La imagen al imprimir debe salir la
imagen valores rgb
en un de un pixel nueva combinacion rgb
pixel
dado
Guarda en la
carpeta de
Guardar
salida la [Link]("[Link]")
imagen imagen
editada

Open data and administrate other kind of files of data


Function open()

Open(file, mode)
Abre un
Abrir un archivo txt y
archivo guarda el variable=open("name_file.txt")
txt contenido en
una variable
Abrir un
archivo y Abre el
guardar contenido de
el un archivo y with open(filename) as variable:
contenid lo guarda en
una varible
o en una
variable
Separar
elemento
sy
guardarl
os en
una lista
.split()
Functions

¿Qué son?
Son unidades lógicas en donde guardas una serie de instrucciones. Cuando más adelante necesites usar esas mismas instrucciones ya no necesitas copiar y
pegar las líneas sino solo escribir la función en una línea. Algunas funciones son predeterminadas como por ejemplo print () o len() pero también existe la
posibilidad de crear nuestras propias funciones.

Ejemplo:

Estructura
Ejemplo:

Las variables que se usan dentro del cuerpo de las funciones no sirven fuera de la función.

Para usar nombres a las funciones es preferible poner nombres de acciones como print_value o insert_error ,etc
Function
A function is a group of statements (computer commands) that together perform one task. Broadly
speaking, there are four types of functions in Python which are:
1. Built-in functions
2. Standard library functions
3. Third-party functions
4. User-defined functions

1. Built in fuctions

Example:

input, int, float, str, len, range, abs, round, list, dict, open, and print

Functions library
[Link]

Parameter and argument


Module:
Es una colección de funciones. Es más o menos como decir que una función es una herramienta y el módulo es la caja de esas herramientas.

Module Function Parameter


4
Argument

Method
Un método es una función que «pertenece a» un objeto. En Python, el término método no está limitado a instancias de clase: otros tipos de
objetos pueden tener métodos también. Por ejemplo, los objetos lista tienen métodos llamados append, insert, remove, sort, y así
sucesivamente
Fuente: [Link]
Ejemplo:

Ejemplos:
Tkinter

Tkinter es el paquete más utilizado para crear interfaces gráficas en Python. Es una capa orientada a objetos basada en Tcl (sencillo y versátil lenguaje de
programación open-source) y Tk (la herramienta GUI estándar para Tcl).

Fuente: [Link]

La interfaz son las opciones que permiten al usuario interactuar con un programa, algunas partes de la interfaz son los menus, los botones, las barras para
moverse, las entradas de usuario, el fondo etc.
Colores tkinter
,
Canvas (lienzo)
Es el lugar donde se presentará todas las imágenes

def main():
# The width and height of the scene window.
width = 800 #ancho
height = 500 #largo

height

width

Crear dibujos

def draw_eye2(canvas, scene_left, scene_top, scene_right, scene_bottom):


canvas.create_polygon(180,278,174,291,183,294, fill="burlywood1")#1

Figuras

Línea
canvas. create_line (x, y, m, n)
(canvas, scene_left, scene_top, scene_right, scene_bottom)
Oval
canvas. create_line (x, y, m, n)
(canvas, scene_left, scene_top, scene_right, scene_bottom)
Polygon

Variable scope (alcance de una variable)


The scope of a variable determines how long that variable exists and where it can be used.

A local scope ----- dentro de la varible


Solo se puede usar dentro de la función que se este ejecutando, pero no en otro lugar

A global scope ---- fuera de la variable


Se ejecuta en todo el programa
Si una variable es definida dentro de una función se puede usar el mismo nombre de esa variable varias veces sin que exista conflicto debido a que ese tipo
de variables solo sirven dentro de la función.

Las variables definidas en la función main son locales y no se deben considerar generales.

Ejemplo:

Incorrecto

Correcto
Good Function design

1. Debe ser leíble para otros programadores


2. El nombre de la función debe ser el nombre de lo que hace
3. Debe ser corta, no más de 20 lineas
4. Pocos if´s
5. Es reusable.

Estructura de las funciones

Librerías

def main():
Se definen las variables globales (las que se usarán en todo
le programa o de manera general aparezcan en el
encabezado
Header Se definen el texto que aparecerá en
Call functions pantalla

Se incluyen las entradas del usuario

Se usan las funciones declaradas en la


parte inferior

Parámetros: son todas las variables que se


usarán dentro de la función

Functions
Define functions

Return: indica el fin de la función y se


coloca la variable que se obtiene
main()

Test functions

Probamos funciones para poder estar seguros de que la función funciona correctamente. Si la función recibe datos incorrectos que se espera que el
programa realice para corregir ese error.
Assert
assertion is a statement that causes the computer to check if a comparison is true

Ejemplo:
Formas de usar el assert

Sirve para comparar una condición de la función

third-party module: es un modulo que no viene con el programa sino que hay que instalar. Como un
accesorio.
Compare floating numbers
Si utilizas números decimales (float) es importante indicar el margen de error.

Ejemplo:

Formas para realizar un test


o Probamos la función manualmente probando los argumentos y viendo que responde el programa en cada casa
o Probar una función con un archivo separado del archivo que contiene a la función

Pasos para probar una función

1. Escribimos la función en un archivo


2. Buscamos los posibles argumentos que se podrían ingresar en los parámetros de la función
3. En un archivo separado escribimos una función de prueba y usamos asserts para poder comparar los resultados esperados
4. Usamos pytest para hacer la comprobación
5. Observamos el resultado del análisis y corregimos errores
Ejemplo:

Escribimos la función

Cuando la función no tiene errores al correr el programa desde el archivo de prueba sale esto:

Si hubiera errores sale asi


Cambie el cero por el 1

Lo importante es que sale lo que deberíamos poner y en qué línea está el error. Solo sale el primer error, significa que si hay dos errores solo saldrá el
primer error, lo cual es lógico teniendo en cuenta que si arreglamos el primero saldrá el segundo y así sucesivamente.
Estructura de los archivos para poder probar funciones

Archivo con la función Archivo para probar

Probar funciones sin correr el programa


Para probar las funciones de prueba sin que corra el programa principal main() debemos escribir asi
Troubleshooting Functions (solución de problemas en funciones)

Types of mistakes
 syntax errors: son errores que comete el programador en donde coloca mal una letra, o le hace
falta cerrar un parentesis o colocar dos puntos.
 logic errors: son errores en donde el programador configura mal una formula u orden y el
programa arroja un resultado erroneo. Como, por ejemplo: en una división en lugar de dividir a/b el
programador coloca b/a y por tanto la repsuesta es errónea.

Error messages

EOL: End of line


EOF: End of file
EOT: End of transmission
Lists

¿qué es un objeto?

En Python todo es un objeto. Cuando creas una variable y le asignas un valor entero, ese valor es un objeto; una función
es un objeto; las listas, tuplas, diccionarios, conjuntos, … son objetos; una cadena de caracteres es un objeto. Y así podría
seguir indefinidamente.
Fuente:

[Link]
Clasificar
listas

Revertir
elemento
[Link]()
s de una
lista

Dictionaries
Handling errors

Error handling Debugging

Son errores externos al programa, como por ejemplo cuando un usuario Es un error propio del programa que el programador debe solucionar.
ingresa un valor erróneo Como por ejemplo una formula realiza mal un calculo y por ende da un
valor incorrecto.

Error types
 Syntax errors
 Runtime errors
 Logic errors

Try, except, finally

Codes
[Link]

TypeError
ValueError
ZeroDivisionEr
ror
IndexError
KeyError
FileNotFoundE
rror
PermissionErr
or

Open files in Vs code

Mode=”rt” for reading

Mode=”wt” for writing

Mode=”at” for appending to the of a text file


TXT files
CSV files
Functional Programming

main (función, lista_iterable)

De los
elemento
s de una
lista va
leyendo
cada
Funci elemento
on y
map aplicando
los
cambios
de una
función
que se
indique.

Es
introducir
funciones
dentro de
Neste otras
d funciones
functi en lugar
de
on
declararla
s despues
de la
main()

Lamd Es una lambda argumentos: expresión


función
a
corta que
functi puede
on servir
para
realizar
una
operación
sencilla
Sirve para
filtrar con
una Filter( función , lista_iterable)
condición
dada
mediante Nota: Si no se coloca list se imprime un valor
una
función. asi:
Entra una
lista de
elemento
s, los
Filter compara
mediante Si se coloca list
la función
declarada
y solo
devuelve
Se imprime así:
los que
cumplen
la Para que se imprima la lista de elementos
condición filtrados se debe colocar filter
de la
función

Sorted list

sorted( list_name, key=number of character)

invertir lista
Cortar elementos de una cadena de caracteres
Paradigmas

Interfaces
m

También podría gustarte