Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Creado el Lun 03 Mar 2025 07:54:52
- Autor: JP
- Crear una Tabla Dinámica que se ajusta al "len" de los datos, presentandolos
- centrados tanto horizontamente (filas) como verticalmente (columnas).
- Utilza como separadores verticales (|) y como horizontales (-----).
- Python: pura magia.
- Utiliza conceptos básicos como "len", funciones sencillas ...
- """
- def calcular_anchos(rango):
- """Calcula el ancho necesario para cada columna."""
- max_decimal = len(str(rango[-1])) # Ancho máximo en decimal
- max_hex = len(hex(rango[-1])[2:]) # Ancho máximo en hexadecimal
- max_octal = len(oct(rango[-1])[2:]) # Ancho máximo en octal
- max_binario = len(bin(rango[-1])[2:]) # Ancho máximo en binario
- # Añadir 4 espacios adicionales para cada columna (2 a cada lado)
- width_c1 = max_decimal + 4 # Ancho columna decimal
- width_c2 = max_hex + 4 # Ancho columna hexadecimal
- width_c3 = max_octal + 4 # Ancho columna octal
- width_c4 = max_binario + 4 # Ancho columna binario
- return width_c1, width_c2, width_c3, width_c4
- def imprimir_tabla(rango):
- """Imprime la tabla con el formato adecuado."""
- # Calcular los anchos necesarios para cada columna
- width_c1, width_c2, width_c3, width_c4 = calcular_anchos(rango)
- # Calcular el ancho total de la tabla
- ancho_total = (
- width_c1 + width_c2 + width_c3 + width_c4 + 9
- ) # 9 por los separadores " | "
- # Encabezado de la tabla
- separador = "-" * ancho_total # Separador dinámico
- print(separador)
- # Encabezado con anchos individuales
- print(
- f"{'d':^{width_c1}} | {'x':^{width_c2}} | {'o':^{width_c3}} | {'b':^{width_c4}}"
- )
- print(separador)
- # Cuerpo de la tabla
- for num in rango:
- decimal = f"{num:^{width_c1}d}"
- hexadecimal = f"{num:^{width_c2}X}"
- octal = f"{num:^{width_c3}o}"
- binario = f"{num:^{width_c4}b}"
- print(f"{decimal} | {hexadecimal} | {octal} | {binario}")
- # Definir el rango
- rango = range(5012, 5022) # Ejemplo con un rango pequeño para prueba
- # Imprimir la tabla
- imprimir_tabla(rango)
Advertisement
Add Comment
Please, Sign In to add comment