es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo alinear una salida de Python

Tengo algunos datos almacenados en la tabla de la base de datos SQL. Necesito recuperar todos esos datos de la base de datos e imprimirlos como una salida de Python en un formato legible por humanos, como una tabla alineada.

A continuación, puedes ver que utilicé el método fetchall() para recuperar esos datos y utilicé la instrucción print con 2 bucles for.

# Ejecutando todos los registros en la consulta SQL
cursor.execute("SELECT * FROM game_log")

# Obtener resultados utilizando el método fetchall()
data = cursor.fetchall()

print("\n\nFecha y Hora\t\tNombre\tPalabra\tTurnos Dados\tTurnos Utilizados\tResultados")

print("================================================================================")
for item in data:
    for value in item:
        print(value, end="\t")
    print()

A continuación, puedes ver que algunos de ellos se muestran alineados, pero algunos de los datos no se muestran alineados.

¿Cómo puedo mostrar todos los datos alineados?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para mostrar todos los datos alineados, podemos utilizar el formato de cadena para especificar el ancho de cada columna. Podemos usar los métodos ljust() o rjust() para justificar el texto a la izquierda o a la derecha dentro del ancho especificado.

    Aquí tienes un ejemplo de cómo podemos modificar el código para alinear todas las columnas:

    # ejecutando todos los registros en la consulta de SQL
    cursor.execute("SELECT * FROM game_log")
    
    # Obtener resultados utilizando el método fetchall()
    data = cursor.fetchall()
    
    # especificar el ancho de cada columna
    date_width = 19
    name_width = 15
    word_width = 10
    turns_given_width = 12
    turns_used_width = 10
    results_width = 10
    
    # imprimir encabezado
    header = f"{'Fecha y Hora'.ljust(date_width)}{'Nombre'.ljust(name_width)}{'Palabra'.ljust(word_width)}{'Turnos Dados'.ljust(turns_given_width)}{'Turnos Utilizados'.ljust(turns_used_width)}{'Resultados'}"
    print(header)
    
    print('=' * len(header))
    
    # imprimir datos
    for item in data:
        row = f"{item[0].ljust(date_width)}{item[1].ljust(name_width)}{item[2].ljust(word_width)}{str(item[3]).ljust(turns_given_width)}{str(item[4]).ljust(turns_used_width)}{item[5]}"
        print(row)
    

    En este ejemplo, primero especificamos el ancho de cada columna como variables para facilitar su modificación. Luego utilizamos el formato de cadena para justificar a la izquierda cada valor dentro de su respectivo ancho de columna utilizando el método ljust(). Finalmente, imprimimos el encabezado y cada fila de datos con las columnas alineadas.

Comments are closed.