Maison > développement back-end > Tutoriel Python > Comment puis-je obtenir un alignement à largeur fixe des chaînes imprimées en Python ?

Comment puis-je obtenir un alignement à largeur fixe des chaînes imprimées en Python ?

Linda Hamilton
Libérer: 2024-11-05 22:32:02
original
875 Les gens l'ont consulté

How can I achieve fixed-width alignment of printed strings in Python?

Impression de chaînes avec un alignement à largeur fixe

En programmation, il est souvent souhaitable d'aligner les chaînes dans des colonnes fixes pour plus de clarté et d'organisation visuelle. Cet article explique comment y parvenir à l'aide de techniques de formatage avancées en Python.

Problème : aligner des valeurs de chaîne inégales

Considérez le code suivant qui calcule la fréquence de toutes les permutations dans une chaîne donnée :

# Original code to generate permutations
...

# Printing results
unique = sorted(set(el))
for prefix in unique:
    if prefix != "":
        print("value  ", prefix, "- num of occurrences =   ", string.count(str(prefix)))
Copier après la connexion

Cependant, la sortie peut sembler mal alignée en raison de longueurs de chaîne variables :

value   a - num of occurrences =    1
value   ab - num of occurrences =    1
value   abc - num of occurrences =    1
value   b - num of occurrences =    1
value   bc - num of occurrences =    1
value   bcd - num of occurrences =    1
value   c - num of occurrences =    1
value   cd - num of occurrences =    1
value   d - num of occurrences =    1
Copier après la connexion

Solution utilisant str.format

Pour aligner la sortie, nous pouvons utiliser le str.format Méthode .format avec des spécificateurs de format spécifiques :

# Using str.format for alignment
print("{0: <5}".format("value  ") +
      "{1: >15}".format(prefix) +
      "- num of occurrences =   " +
      "{2: <5}".format(string.count(str(prefix))))
Copier après la connexion

Spécificateurs de format :

  • <5 : alignez la chaîne à gauche dans une largeur de 5 caractères.
  • >15 : alignez la chaîne à droite dans une largeur de 15 caractères.

    Modification 1 : Le "0" dans "{0 : <5}" fait référence à l'index de l'argument passé à str.format().

    Edit 2 : Python 3 introduit f-strings comme alternative concise à str.format :

    # Using f-strings for alignment
    print(f"{'value  ':<5}" +
          f"{prefix:>15}" +
          "- num of occurrences =   " +
          f"{string.count(str(prefix)):<5}")</p>
    Copier après la connexion

    Avantages :

    • Lisibilité et organisation améliorées.
    • Flexibilité en spécifiant l'alignement et la largeur.
    • Compatibilité avec Python 2 et Python 3.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal