Python Notas
Python Notas
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
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.
from math import sqrt # Solo importamos la función sqrt del módulo math
Git y github
¿Qué es GitHub?
GitHub es un sitio web que usa Git, que es un sistema de control de versiones.
En corto:
📦 Guarda tu código en la nube
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
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
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.
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”
print (a, b, c)
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:
print(caracter0)
print(caracter1)
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
#Usando el operador +
cadena1 ="Hola"
cadena2 ="mundo"
cadena3 ="en pyhton"
cadena_concatenada=cadena1+cadena2+cadena3+"Andres"
print(cadena_concatenada)
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
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)
# .strip(" ") elimina los caracteres indicados al principio yu final hasta que encuentra otro diferente
print([Link]("#"))
salida:
print(cadena1 * 4)
print(cadena1 * 2)
print(cadena1 * 1)
print(cadena1 * 0)
salida:
Salida.
#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
print(lista1)
print(lista2)
print(lista3)
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]()
""")
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
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}")
numero1= [Link](0,9)
numero3= [Link](0,9)
numero2= [Link](0,9)
numero4= [Link](0,9)
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 : ")
Solución:
print("*** Sistema de Autenticación***")
usuario_correcto= "andres"
password_correcto= "123"
VALOR_MIN=0
VALOR_MAX=5
area=base*altura
perimetro= 2 *(base+altura)
Ejericicio 5:
Acción a ejecutar
Ejemplo:
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
edad= 18
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
continuar=continuar== "si"
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")
Solución.
print("*** APlicación de Salud y Fitness***")
META_PASOS_DIARIOS= 10000
CALORIAS_POR_PASO = 0.04
Solución:
###### Sistema de notas
Solución:
#Sistema de envíos
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"
USUARIO= "andres"
PASSWORD= "123abc"
contador = 0
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:
dicccionario= ["a":1, "b":2, "c":3] va iterando cada valor de cada etiqueta (1,2,3)
for i in [Link]():
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
print(acumulador_suma)
#Menú iterativo
salir= False
while not salir:
print("Menú")
print("1. Crear cuenta")
print("2. Eliminar cuenta")
print("3. Salir ")
salir= False
saldo= 1000
retiro=0
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
Ejercicio 4: Calculadora
Solución:
salir = False
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")
salida=False
while not salida:
if len(password)<6:
print("Contraseña inválida")
else:
print("password válido")
salida= True
salida=False
intentos= 10
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")
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
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
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
Solución
## Promedio de calificaciones
calificaciones=[]
contador=1
salida=False
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
Ejercicios
Lista de suscriptores
Solución
suscriptores=set()
for _ in range(numero_suscriptores):
[Link](input("Nuevo suscriptor (email): "))
print(f"La lista de suscriptores: {suscriptores}")
#ELiminar un suscriptor
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:
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
"subdict2" : {
"clave1": "valor1",
"clave2": "valor2",
"clave3": "valor3"
}
}
{
"clave4": "valor4",
"clave5": "valor5",
"clave6": "valor6"
}
]
Ejercicios
Inventario
inventario=[]
print(len(inventario))
print (inventario)
nombre=inventario[id]["Nombre"]
precio=inventario[id]["Precio"]
cantidad=inventario[id]["Cantidad"]
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)
print(resultado)
print(pares_cuadrados)
# [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]#
Sets (conjuntos)
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)
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
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
replace () → reemplaza
parte del 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()
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)
cadena="the-stealth-warrior"
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
Contenedores:
Lista, tupla, conjunto, diccionario
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
Ejemplo:
RANGO, TAMAÑO =3
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
.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
Tamaño
de una Arroja el
lista número de
Variable= len (nombre_lista)
(cantida elementos
de una lista
d de
element
os)
len()
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
[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:
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:
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
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 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 string
en número Int( string variable)
entero
Salida:
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
While
Estructura
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
Salida
a=0 a=1 a=2
b=1 b=2 b=4
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
for _ in
in 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
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
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
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:
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]
Fuente: [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
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:
Sale un error
Para instalar:
Luego se instala:
Volver a comprobar:
Correr el programa:
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
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
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(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]
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
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
Las variables definidas en la función main son locales y no se deben considerar generales.
Ejemplo:
Incorrecto
Correcto
Good Function design
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
Functions
Define functions
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
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:
Escribimos la función
Cuando la función no tiene errores al correr el programa desde el archivo de prueba sale esto:
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
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
¿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
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
Codes
[Link]
TypeError
ValueError
ZeroDivisionEr
ror
IndexError
KeyError
FileNotFoundE
rror
PermissionErr
or
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()
Sorted list
invertir lista
Cortar elementos de una cadena de caracteres
Paradigmas
Interfaces
m