Chaîne justifiée à droite en Python

Aditya Raj 10 octobre 2023
  1. Utiliser des spécificateurs de format pour justifier à droite les chaînes en Python
  2. Utilisez f-strings pour justifier à droite les chaînes en Python
  3. Utilisez la méthode format() pour justifier à droite les chaînes en Python
  4. Utilisez la méthode rjust() pour justifier à droite les chaînes en Python
  5. Conclusion
Chaîne justifiée à droite en Python

Parfois, lors de l’impression de tableaux en python, nous devons justifier des valeurs pour bien paraître. Dans cet article, nous aborderons différentes manières de justifier à droite une chaîne en python.

Utiliser des spécificateurs de format pour justifier à droite les chaînes en Python

Les spécificateurs de format, comme leur nom l’indique, sont utilisés pour formater les valeurs dans une chaîne. Voici la syntaxe d’utilisation des spécificateurs de format en python.

myStr = "%s" % (string_variable)
  • La string_variable est le nom de la variable qui doit être imprimé sous forme de chaîne.
  • %s est utilisé comme spécificateur de format et espace réservé pour une variable de chaîne. Pour les entiers et les nombres à virgule flottante, vous pouvez utiliser %d et %f comme spécificateur de format.

Lorsque l’instruction ci-dessus est exécutée, la valeur dans string_variable est affectée à la place du spécificateur de format dans la chaîne. Enfin, la chaîne de sortie est affectée à myStr.

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

Production:

Delftstack Aditya Jinku

Dans l’exemple ci-dessus, nous avons défini trois variables de chaîne. Après cela, nous avons converti les entrées en une seule chaîne à l’aide de spécificateurs de format.

Dans cet exemple suivant, supposons qu’il y ait moins de variables que le nombre de spécificateurs de format dans la chaîne. Dans ce cas, le programme rencontrera une exception TypeError indiquant qu’il n’y a pas assez d’arguments donnés à la chaîne de format.

Exemple de code :

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

Production:

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

Il existe trois spécificateurs de format dans le code ci-dessus. Cependant, nous n’avons donné que deux variables de chaîne comme arguments d’entrée à l’opérateur %.

Pour cette raison, le programme rencontre une exception TypeError. De même, lorsqu’il y a plus de variables dans la chaîne de format que le nombre de spécificateurs de format, le programme rencontre une exception TypeError indiquant que tous les arguments de la chaîne de format n’ont pas été convertis lors du formatage de la chaîne.

Exemple de code :

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

Production:

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

Dans l’exemple ci-dessus, il n’y a que deux spécificateurs de format, mais nous avons donné trois variables de chaîne comme arguments d’entrée à l’opérateur %. Pour cette raison, le programme rencontre l’exception TypeError lors de l’exécution.

Pour justifier à droite les chaînes de sortie, nous utilisons la longueur de la chaîne de sortie avec le spécificateur de format, comme indiqué dans l’extrait de code suivant.

Exemple de code :

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)

Nous avons spécifié la longueur de la chaîne de sortie dans l’exemple ci-dessus comme 10. Après l’exécution, les chaînes de sortie seront de longueur 10.

Production:

Delftstack
    Aditya
     Jinku

Observez dans la sortie que les chaînes sont justifiées à droite. Si la longueur de la string_variable est inférieure à la longueur de la chaîne de sortie spécifiée dans le spécificateur de format, des espaces sont ajoutés à la chaîne pour justifier à droite la chaîne d’entrée.

Si la longueur de la string_variable est supérieure à la longueur de la chaîne de sortie spécifiée dans le spécificateur de format, aucune modification n’est apportée à la chaîne d’entrée et est imprimée sans modification.

Exemple de code :

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)

Production:

Delftstack
Aditya
Jinku

Nous avons spécifié que la longueur de la chaîne de sortie était 5. Cependant, toutes les chaînes que nous avons passées en entrée sont de longueur supérieure ou égale à 5.

Par conséquent, la longueur spécifiée de la chaîne de sortie est inférieure ou égale à la longueur des chaînes d’entrée. Par conséquent, aucun formatage ne se produit.

Utilisez f-strings pour justifier à droite les chaînes en Python

L’utilisation de spécificateurs de format nous oblige à connaître le type de données des variables pour pouvoir les imprimer. Si nous ne transmettons pas la variable avec le type de données correct spécifié dans le spécificateur de format, le programme se heurte à une exception TypeError.

Exemple de code :

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)

Production:

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

Vous pouvez voir que nous avons utilisé %d comme spécificateur de format. Cependant, nous avons passé une chaîne comme entrée à l’opérateur %.

Pour cette raison, le programme rencontre une exception TypeError indiquant qu’il attend une entrée entière et non une chaîne. Pour éviter cette erreur, nous pouvons utiliser des chaînes f pour justifier à droite les chaînes.

La syntaxe pour utiliser f-strings :

myStr = f"{string_variable}"
  • La string_variable est la variable dont la valeur doit être imprimée.
  • {} est utilisé comme espace réservé pour la string_variable.
  • Le littéral "f" devant la chaîne indique que la chaîne est une f-string.

Après exécution, la chaîne de sortie est affectée à myStr.

Exemple de code :

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)

Production:

Delftstack
Aditya
Jinku

Nous avons créé trois variables dans l’exemple ci-dessus. Après cela, nous avons créé trois f-strings correspondant à chaque variable.

Après exécution des f-strings, les sorties sont affectées aux variables myStr1, myStr2 et myStr3. Pour justifier à droite la chaîne de sortie dans le code ci-dessus, nous utilisons la longueur de la chaîne de sortie dans l’espace réservé, comme illustré dans l’exemple suivant.

Exemple de code :

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)

Production:

Delftstack
    Aditya
     Jinku

Nous avons utilisé la syntaxe variable_name:> output_length dans l’espace réservé pour justifier à droite les chaînes dans la sortie. Nous avons spécifié la output_length à 10.

Si la longueur de la string_variable est inférieure à la longueur de la chaîne de sortie spécifiée dans l’espace réservé, des espaces sont ajoutés à la chaîne pour justifier à droite la chaîne d’entrée. Comme dans l’extrait de code suivant, si la longueur de la string_variable est supérieure à la longueur de la chaîne de sortie spécifiée dans l’espace réservé, aucun changement ne se produit dans la chaîne d’entrée et elle est imprimée sans modification.

Exemple de code :

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)

Production:

Delftstack
Aditya
Jinku

Nous avons spécifié la longueur de la chaîne de sortie à 5, qui est inférieure ou égale à la longueur de toutes les chaînes d’entrée. Par conséquent, aucun formatage ne se produit.

Utilisez la méthode format() pour justifier à droite les chaînes en Python

Au lieu de f-strings, nous pouvons également utiliser la méthode format() pour justifier à droite les chaînes en python.

La syntaxe d’utilisation de la méthode format() :

myStr = "{}".format(string_variable)
  • string_variable est le nom de la variable qui doit être imprimée sous forme de chaîne.
  • {} est utilisé comme espace réservé pour une variable de chaîne.

Lorsque la méthode format() est exécutée, la valeur dans string_variable est affectée à la place de l’espace réservé dans la chaîne. Enfin, la chaîne de sortie est affectée à myStr.

Exemple de code :

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)

Production:

Delftstack
Aditya
Jinku

Dans l’exemple ci-dessus, nous avons créé trois variables. Après cela, nous avons utilisé la méthode format() trois fois, une fois pour chaque variable.

Les sorties sont affectées aux variables myStr1, myStr2 et myStr3 après exécution de la méthode format().

Prenons un exemple où vous pouvez avoir n’importe quel nombre d’espaces réservés avec le même nombre de variables comme argument d’entrée de la méthode format().

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

Production:

Delftstack Aditya Jinku

Nous avons passé les trois variables comme arguments d’entrée à la méthode format(). La sortie est renvoyée sous la forme d’une chaîne unique.

Si moins de variables sont passées à la méthode format() que le nombre d’espaces réservés dans la chaîne, le programme se heurtera à une exception IndexError, comme dans l’exemple suivant.

Exemple de code :

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

Production:

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

Voyez qu’il y a trois espaces réservés, mais nous n’avons passé que deux chaînes comme arguments d’entrée à la méthode format(). Pour cette raison, le programme rencontre l’exception IndexError.

Lorsque le nombre de variables passées à la méthode format() est supérieur aux espaces réservés dans la chaîne sur laquelle la méthode format() est invoquée, les variables égales au nombre d’espaces réservés sont incluses dans la chaîne. Le reste des variables est ignoré.

Exemple de code :

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

Production:

Delftstack Aditya

Vous pouvez voir qu’il n’y a que deux espaces réservés, et nous avons passé trois chaînes en entrée à la méthode format(), mais le programme ne se heurte pas à IndexError cette fois. Seul le dernier argument d’entrée a été ignoré.

Pour justifier à droite la chaîne de sortie à l’aide de la méthode format(), nous utilisons la longueur de la chaîne de sortie dans l’espace réservé, comme indiqué dans l’exemple suivant.

Exemple de code :

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)

Production:

Delftstack
    Aditya
     Jinku

Ici, si la longueur de la string_variable est inférieure à la longueur de la chaîne de sortie spécifiée dans l’espace réservé, des espaces sont ajoutés à la chaîne pour justifier à droite la chaîne d’entrée.

Si la longueur de la string_variable est supérieure à la longueur de la chaîne de sortie spécifiée dans l’espace réservé, aucun changement n’est apporté à la chaîne d’entrée et est imprimée sans modification.

Exemple de code :

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)

Production:

Delftstack
Aditya
Jinku

Toutes les approches décrites ci-dessus sont utilisées pour formater les variables avec chaque type de données. Python nous fournit également des méthodes spécifiques aux chaînes.

Nous pouvons utiliser la méthode rjust() pour justifier à droite les chaînes en python.

Utilisez la méthode rjust() pour justifier à droite les chaînes en Python

La syntaxe de la méthode rjust() :

myStr = string_variable.rjust(output_length)
  • string_variable est la variable dont la valeur doit être justifiée à droite.
  • Le ouput_length est la longueur de la chaîne de sortie.

Lorsque la méthode rjust() est invoquée sur la string_variable, elle prend output_length comme argument d’entrée et renvoie la chaîne justifiée à droite, qui est affectée à myStr.

Exemple de code :

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)

Production:

Delftstack
    Aditya
     Jinku

Si la longueur de la string_variable est inférieure à la output_length, des espaces sont ajoutés à la chaîne pour justifier à droite la chaîne d’entrée.

Dans cet exemple suivant, si la longueur de la string_variable est supérieure à output_length, aucun changement ne se produit dans la chaîne d’entrée et elle est imprimée sans modification.

Exemple de code :

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)

Production:

Delftstack
Aditya
Jinku

Conclusion

Dans cet article, nous avons discuté de quatre façons de justifier à droite une chaîne en python. Parmi tous ceux-ci, je vous suggérerais d’utiliser l’approche utilisant la méthode format() car elle est plus pratique.

De plus, le programme ne rencontrera pas d’erreur si la variable d’entrée contient des valeurs d’autres types de données dans ce cas.

Auteur: 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

Article connexe - Python String