Introducción a la impresión de alineación de texto de salida de impresión de python (% -35s)

1. Descripción del problema

Cuando usamos imprimir para imprimir texto, a menudo encontramos problemas de desalineación, lo que hace que el resultado se vea muy desordenado. Como se muestra en la figura a continuación, debido a la gran diferencia en la longitud de la primera columna de cadenas, incluso si uso tabulaciones (\t) para dividirlas, no están alineadas y aún habrá una diferencia de 1 a 2 \t de longitud.
inserte la descripción de la imagen aquí

2. Solución

Utilice la salida formateada de impresión para resolverlo. print("%-35s\t%s"%(i+':',str(data.attrs[i]))) .

El % aquí es un marcador de posición. El marcador de posición significa usar % para ocupar un hueco en la salida, y luego usar la variable correspondiente para llenar el hueco más adelante. %s indica que una ranura de tipo de cadena está ocupada y que se generará una cadena más tarde; de ​​manera similar, %d, %f, etc. representan ranuras de tipo entero y ranuras de tipo de punto flotante, respectivamente.

También puede agregar algo entre % y s para indicar la longitud del hoyo (como el primer marcador de posición %-35s), y si no se agrega nada (como el segundo marcador de posición %s), significa que no hay una longitud fija predeterminada, salida de acuerdo con la longitud real de la cadena. Por ejemplo, 35 significa que ocupa un hoyo con una longitud de 35 caracteres, si la longitud de la variable es menor a 35, entonces llene 35 con espacios, pero si la longitud de la variable es igual o superior a 35, entonces se emitirá de acuerdo con la longitud real. Dado que este 35 no es válido, el efecto es equivalente a %s.

Además, 35 también se divide en positivo y negativo, que se utiliza para indicar de qué lado comenzar a llenar el agujero cuando se emite la variable. Si es 35 (+35), entonces llene el hueco desde la derecha, y luego si la longitud de la variable no es suficiente para 35, entonces llene 35 con espacios a la izquierda, y el efecto obtenido en este momento es correcto alineación, que también es la predeterminada de la computadora. Y -35 significa llenar el hueco desde la izquierda.Si la longitud de la variable no es suficiente para 35 luego, entonces llene 35 con espacios a la derecha, y el efecto obtenido en este momento es la alineación a la izquierda. Pero si la longitud de la variable es igual o superior a 35, se generará de acuerdo con la longitud real, lo que significa que 35 o -35 no son válidos y el efecto es equivalente a %s.

Entre dos pozos, es decir, %-35s y %s también se pueden separar con un símbolo, aquí uso una tabulación (\t) para separar.

Una vez que se establecen los hoyos, los hoyos se llenan con variables. El método para llenar el hueco es agregar %() después de "%-35s\t%s", y luego colocar las variables entre paréntesis en orden, por ejemplo, %-35s corresponde a i+':', y %s corresponde a str(datos. atributos[i])) . El resultado final es el que se muestra a continuación.

En resumen, de hecho, %-35s se puede resumir como alineado a la izquierda, con una longitud de 35, y %s se puede resumir como alineado a la derecha, sin establecer una longitud.

inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_42999968/article/details/112229720
Recomendado
Clasificación