Repository navigation
Python
Este archivo es un registro (log) que muestra operaciones relacionadas con la capa de datos de la aplicación. Las operaciones incluyen el inicio de métodos, la creación del pool de conexiones, la obtención de conexiones y la actualización de usuarios.
Atributos de clase:
-
_DATABASE: Nombre de la base de datos. -
_USERNAME: Nombre de usuario para la conexión. -
_PASSWORD: Contraseña para la conexión. -
_DB_PORT: Puerto de la base de datos. -
_HOST: Host de la base de datos. -
_MIN_CONy_MAX_CON: Número mínimo y máximo de conexiones en el pool. -
_pool: Pool de conexiones.
Métodos de clase:
-
obtenerConexion(): Obtiene una conexión del pool. -
obtenerCursor(): Método marcador de posición. -
obtenerPool(): Obtiene el pool de conexiones. -
liberarConexion(conexion): Devuelve una conexión al pool. -
cerrarConexiones(): Cierra todas las conexiones en el pool.
Atributos:
-
_conexion: Conexión obtenida del pool. -
_cursor: Cursor obtenido de la conexión.
Métodos:
-
__enter__(self): Obtiene un cursor de la conexión. -
__exit__(self, tipo_exception, valor_exception, detalle_exception): Realiza uncommitorollbackdependiendo de si hay excepciones, y luego cierra el cursor.
Configura y define un logger para la aplicación usando el módulo logging de Python.
Proporciona un menú interactivo para operaciones CRUD en usuarios. Las opciones incluyen listar usuarios, agregar usuarios, modificar usuarios, eliminar usuarios y salir.
Atributos:
-
_id_persona: ID de la persona. -
_nombre: Nombre de la persona. -
_apellido: Apellido de la persona. -
_email: Email de la persona.
Métodos:
- Constructor para inicializar la instancia.
-
__str__: Representación en cadena de la instancia. - Getters y Setters para cada atributo.
Constantes de clase:
- Consultas SQL para operaciones CRUD.
Métodos de clase:
-
seleccionar(): Lista todas las personas. -
insertar(persona): Inserta una nueva persona. -
actualizar(persona): Actualiza una persona existente. -
eliminar(persona): Elimina una persona.
Atributos:
-
_id_usuario: ID del usuario. -
_username: Nombre de usuario. -
_password: Contraseña del usuario.
Métodos:
- Constructor para inicializar la instancia.
-
__str__: Representación en cadena de la instancia. - Getters y Setters para cada atributo.
Constantes de clase:
- Consultas SQL para operaciones CRUD.
Métodos de clase:
-
seleccionar(): Lista todos los usuarios. -
insertar(usuario): Inserta un nuevo usuario. -
actualizar(usuario): Actualiza un usuario existente. -
eliminar(usuario): Elimina un usuario.
#CLASE 2 Trabajando con Tipos de Datos y Sistemas de Numeración
En Python, se puede representar números muy grandes o muy pequeños de forma concisa utilizando la notación exponencial.
Ejemplos:
-
3e5representa 300,000. Es decir, 3 multiplicado por 10 a la potencia de 5. -
3e-5representa 0.00003. Aquí, el número se calcula como 3 multiplicado por 10 a la potencia de -5.
Cualquier cálculo que incluya un número flotante resultará en un número flotante, incluso si los otros números son enteros.
Python permite trabajar con diferentes bases numéricas y ofrece la flexibilidad de convertir entre ellas.
Ejemplos:
- Convertir una cadena en base 10 a un entero:
a = int('23', 10) - Convertir una cadena en base 2 (binario) a un entero:
a = int('10111', 2) - Convertir una cadena en base 8 (octal) a un entero:
a = int('27', 8) - Convertir una cadena en base 16 (hexadecimal) a un entero:
a = int('17', 16) - Convertir una cadena en una base arbitraria (por ejemplo, base 5) a un entero:
a = int('34', 5)
Además, se puede controlar la cantidad de decimales mostrados en un flotante utilizando las f-strings y especificando el número de decimales después de un punto, por ejemplo: {a:.2f}.
Python puede representar valores infinitos, lo que es útil en diversas aplicaciones matemáticas y lógicas.
Ejemplos:
- Representar infinito positivo:
infinito_positivo = float('inf')oinfinito_positivo = math.inf - Representar infinito negativo:
infinito_negativo = float('-inf')oinfinito_negativo = -math.inf
Para comprobar si un valor es infinito, se puede usar la función math.isinf(), como en math.isinf(infinito_positivo).
También se puede trabajar con el módulo decimal para representar infinitos:
- Infinito positivo:
infinito_positivo = Decimal('Infinity') - Infinito negativo:
infinito_negativo = Decimal('-Infinity')
De nuevo, math.isinf() se utiliza para comprobar si un número es infinito, independientemente de si se utiliza float o Decimal.
Python soporta la representación de números en varios sistemas de numeración.
Ejemplos:
- Sistema decimal:
a = 10 - Sistema binario:
a = 0b1010(el prefijo0bindica que el número está en binario)
La función int() en Python es extremadamente versátil y permite la conversión entre diferentes sistemas numéricos, como se demostró en los ejemplos anteriores de conversión entre bases numéricas.