Cadena justificada a la derecha en Python

Aditya Raj 10 octubre 2023
  1. Usar especificadores de formato para justificar cadenas a la derecha en Python
  2. Use f-strings para justificar cadenas a la derecha en Python
  3. Usa el método format() para justificar cadenas a la derecha en Python
  4. Utilice el método rjust() para justificar cadenas a la derecha en Python
  5. Conclusión
Cadena justificada a la derecha en Python

A veces, al imprimir tablas en python, necesitamos justificar los valores para que se vean bien. En este artículo, discutiremos diferentes formas de justificar a la derecha una cadena en python.

Usar especificadores de formato para justificar cadenas a la derecha en Python

Los especificadores de formato, como sugiere su nombre, se utilizan para formatear valores en una cadena. La siguiente es la sintaxis para usar especificadores de formato en python.

myStr = "%s" % (string_variable)
  • La string_variable es el nombre de la variable que debe imprimirse como una cadena.
  • %s se utiliza como especificador de formato y marcador de posición para una variable de cadena. Para números enteros y de coma flotante, puede utilizar %d y %f como especificador de formato.

Cuando se ejecuta la declaración anterior, el valor en string_variable se asigna en el lugar del especificador de formato en la cadena. Finalmente, la cadena de salida se asigna a myStr.

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)

Producción :

Delftstack Aditya Jinku

En el ejemplo anterior, definimos tres variables de cadena. Después de eso, convertimos las entradas en una sola cadena usando especificadores de formato.

En el siguiente ejemplo, suponga que hay menos variables que el número de especificadores de formato en la cadena. En ese caso, el programa se encontrará con una excepción TypeError que indica que no se han dado suficientes argumentos a la cadena de formato.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s %s" % (string_variable1, string_variable2)
print(myStr)

Producción :

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "%s %s %s" % (string_variable1, string_variable2)
TypeError: not enough arguments for format string

Hay tres especificadores de formato en el código anterior. Sin embargo, solo hemos dado dos variables de cadena como argumentos de entrada al operador %.

Debido a esto, el programa se encuentra con una excepción TypeError. De manera similar, cuando hay más variables en la cadena de formato que el número de especificadores de formato, el programa se encuentra con una excepción TypeError que dice que todos los argumentos de la cadena de formato no se han convertido durante el formateo de la cadena.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
print(myStr)

Producción :

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "%s %s" % (string_variable1, string_variable2, string_variable3)
TypeError: not all arguments converted during string formatting

En el ejemplo anterior, solo hay dos especificadores de formato, pero le hemos dado tres variables de cadena como argumentos de entrada al operador %. Debido a esto, el programa se encuentra con la excepción TypeError durante la ejecución.

Para justificar a la derecha las cadenas de salida, usamos la longitud de la cadena de salida con el especificador de formato, como se muestra en el siguiente fragmento.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%10s" % (string_variable1)
myStr2 = "%10s" % (string_variable2)
myStr3 = "%10s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Hemos especificado la longitud de la cadena de salida en el ejemplo anterior como 10. Después de la ejecución, las cadenas de salida tendrán una longitud de 10.

Producción :

Delftstack
    Aditya
     Jinku

Observe en la salida que las cadenas están justificadas a la derecha. Si la longitud de string_variable es menor que la longitud de la cadena de salida especificada en el especificador de formato, los caracteres de espacio se rellenan en la cadena para justificar a la derecha la cadena de entrada.

Si la longitud de string_variable es mayor que la longitud de la cadena de salida especificada en el especificador de formato, no se produce ningún cambio en la cadena de entrada y se imprime sin cambios.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%5s" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
Aditya
Jinku

Especificamos que la longitud de la cadena de salida sea 5. Sin embargo, todas las cadenas que pasamos como entrada tienen una longitud mayor o igual a 5.

Por lo tanto, la longitud especificada de la cadena de salida es menor o igual que la longitud de las cadenas de entrada. Por lo tanto, no se produce ningún formato.

Use f-strings para justificar cadenas a la derecha en Python

El uso de especificadores de formato requiere que conozcamos el tipo de datos de las variables para poder imprimirlas. Si no pasamos la variable con el tipo de datos correcto especificado en el especificador de formato, el programa se encuentra con una excepción TypeError.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "%d" % (string_variable1)
myStr2 = "%5s" % (string_variable2)
myStr3 = "%5s" % (string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr1 = "%d" % (string_variable1)
TypeError: %d format: a number is required, not str

Puede ver que usamos %d como especificador de formato. Sin embargo, hemos pasado una cadena como entrada al operador %.

Debido a esto, el programa se encuentra con una excepción TypeError que dice que espera una entrada entera y no una cadena. Para evitar este error, podemos usar f-strings para justificar las cadenas a la derecha.

La sintaxis para usar f-strings:

myStr = f"{string_variable}"
  • La string_variable es la variable cuyo valor se debe imprimir.
  • {} se utiliza como marcador de posición para string_variable.
  • El literal "f" antes de la cadena muestra que la cadena es una f-cadena.

Después de la ejecución, la cadena de salida se asigna a myStr.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1}"
myStr2 = f"{string_variable2}"
myStr3 = f"{string_variable3}"
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
Aditya
Jinku

Creamos tres variables en el ejemplo anterior. Después de eso, hemos creado tres f-strings correspondientes a cada variable.

Después de la ejecución de las cadenas f, las salidas se asignan a las variables myStr1, myStr2 y myStr3. Para justificar a la derecha la cadena de salida en el código anterior, usamos la longitud de la cadena de salida en el marcador de posición, como se muestra en el siguiente ejemplo.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>10}"
myStr2 = f"{string_variable2:>10}"
myStr3 = f"{string_variable3:>10}"
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
    Aditya
     Jinku

Hemos utilizado la sintaxis variable_name:> output_length en el marcador de posición para justificar a la derecha las cadenas en la salida. Hemos especificado que output_length sea 10.

Si la longitud de string_variable es menor que la longitud de la cadena de salida especificada en el marcador de posición, los caracteres de espacio se rellenan en la cadena para justificar a la derecha la cadena de entrada. Al igual que en el siguiente fragmento, si la longitud de la string_variable es mayor que la longitud de la cadena de salida especificada en el marcador de posición, no se produce ningún cambio en la cadena de entrada y se imprime sin cambios.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = f"{string_variable1:>5}"
myStr2 = f"{string_variable2:>5}"
myStr3 = f"{string_variable3:>5}"
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
Aditya
Jinku

Especificamos que la longitud de la cadena de salida sea 5, que es menor o igual que la longitud de todas las cadenas de entrada. Por lo tanto, no se formatea.

Usa el método format() para justificar cadenas a la derecha en Python

En lugar de f-strings, también podemos usar el método format() para justificar a la derecha las cadenas en python.

La sintaxis para usar el método format():

myStr = "{}".format(string_variable)
  • string_variable es el nombre de la variable que debe imprimirse como una cadena.
  • {} se utiliza como marcador de posición para una variable de cadena.

Cuando se ejecuta el método format(), el valor en string_variable se asigna en el lugar del marcador de posición en la cadena. Finalmente, la cadena de salida se asigna a myStr.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{}".format(string_variable1)
myStr2 = "{}".format(string_variable2)
myStr3 = "{}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
Aditya
Jinku

En el ejemplo anterior, creamos tres variables. Después de eso, hemos usado el método format() tres veces, una para cada variable.

Las salidas se asignan a las variables myStr1, myStr2 y myStr3 después de ejecutar el método format().

Veamos un ejemplo en el que puede tener cualquier número de marcadores de posición con el mismo número de variables como argumento de entrada para el método format().

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1, string_variable2, string_variable3)
print(myStr)

Producción :

Delftstack Aditya Jinku

Pasamos las tres variables como argumentos de entrada al método format(). La salida se devuelve como una sola cadena.

Si se pasan menos variables al método format() que el número de marcadores de posición en la cadena, el programa se encontrará con una excepción IndexError, como en el siguiente ejemplo.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {} {}".format(string_variable1, string_variable2)
print(myStr)

Producción :

Traceback (most recent call last):
  File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 4, in <module>
    myStr = "{} {} {}".format(string_variable1,string_variable2)
IndexError: Replacement index 2 out of range for positional args tuple

Vea que hay tres marcadores de posición, pero hemos pasado solo dos cadenas como argumentos de entrada al método format(). Debido a esto, el programa se encuentra con la excepción IndexError.

Cuando el número de variables pasadas al método format() es mayor que los marcadores de posición en la cadena en la que se invoca el método format(), las variables iguales al número de marcadores de posición se incluyen en la cadena. El resto de las variables se descartan.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr = "{} {}".format(string_variable1, string_variable2, string_variable3)
print(myStr)

Producción :

Delftstack Aditya

Puede ver que solo hay dos marcadores de posición, y hemos pasado tres cadenas como entrada al método format(), pero el programa no se ejecuta en el IndexError esta vez. Solo se ha descartado el último argumento de entrada.

Para justificar a la derecha la cadena de salida usando el método format(), usamos la longitud de la cadena de salida en el marcador de posición, como se muestra en el siguiente ejemplo.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>10}".format(string_variable1)
myStr2 = "{:>10}".format(string_variable2)
myStr3 = "{:>10}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
    Aditya
     Jinku

Aquí, si la longitud de la string_variable es menor que la longitud de la cadena de salida especificada en el marcador de posición, los caracteres de espacio se rellenan en la cadena para justificar a la derecha la cadena de entrada.

Si la longitud de la string_variable es mayor que la longitud de la cadena de salida especificada en el marcador de posición, no se produce ningún cambio en la cadena de entrada y se imprime sin cambios.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = "{:>5}".format(string_variable1)
myStr2 = "{:>5}".format(string_variable2)
myStr3 = "{:>5}".format(string_variable3)
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
Aditya
Jinku

Todos los enfoques discutidos anteriormente se utilizan para formatear variables con cada tipo de datos. Python también nos proporciona métodos específicos para cadenas.

Podemos usar el método rjust() para justificar cadenas a la derecha en python.

Utilice el método rjust() para justificar cadenas a la derecha en Python

La sintaxis del método rjust():

myStr = string_variable.rjust(output_length)
  • string_variable es la variable cuyo valor debe estar justificado a la derecha.
  • El ouput_length es la longitud de la cadena de salida.

Cuando se invoca el método rjust() en string_variable, toma output_length como argumento de entrada y devuelve la cadena justificada a la derecha, que se asigna a myStr.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(10)
myStr2 = string_variable2.rjust(10)
myStr3 = string_variable3.rjust(10)
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
    Aditya
     Jinku

Si la longitud de la variable de cadena es menor que la longitud de salida, los caracteres de espacio se rellenan en la cadena para justificar a la derecha la cadena de entrada.

En el siguiente ejemplo, si la longitud de string_variable es mayor que output_length, no se produce ningún cambio en la cadena de entrada y se imprime sin cambios.

Código de ejemplo:

string_variable1 = "Delftstack"
string_variable2 = "Aditya"
string_variable3 = "Jinku"
myStr1 = string_variable1.rjust(5)
myStr2 = string_variable2.rjust(5)
myStr3 = string_variable3.rjust(5)
print(myStr1)
print(myStr2)
print(myStr3)

Producción :

Delftstack
Aditya
Jinku

Conclusión

En este artículo, hemos discutido cuatro formas de justificar a la derecha una cadena en python. De todos estos, le sugiero que utilice el enfoque utilizando el método formato () ya que es más conveniente.

Además, el programa no se ejecutará en un error si la variable de entrada contiene valores de otros tipos de datos en este caso.

Autor: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

Artículo relacionado - Python String