Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Classe « str » Python 3.11.3

Méthode builtins.str.expandtabs

Signature de la méthode expandtabs

 def expandtabs(self, tabsize=8) -> str

Description

Renvoie une copie de la chaîne de caractères courante dans laquelle les tabulations sont remplacées par des espaces. Il est possible de spécifier le nombre d'espaces correspondant à une colonne de tabulation (par défaut, 8 espaces).

une tabulation permet d'aligner un texte sur une colonne donnée. Une tabulation ne sera donc pas systématiquement remplacée par tabsize espaces. Tout dépend de s'il y a déjà des caractères utilisés dans la colonne en cours. L'exemple suivant, montre le comportement des tabulations utilisées au milieu d'une chaîne de caractères (par défaut, une colonne de tabulation occupe 8 caractères).
>>> s = "James\tJason\tEthan" + "\n123456781234567812345678"
>>> print(s)
James   Jason   Ethan
123456781234567812345678
>>> 

On voit bien dans l'exemple ci-dessus, que chaque prénom est bien placé dans sa colonne de 8 caractères. Par contre, il n'y a pas 8 espaces entre chaque prénom !

La méthode expandtabs remplace chaque tabulation par le nombre d'espaces nécessaire pour passer le texte suivant sur la prochaine colonne de texte.

>>> s = "James\tJason\tEthan"
>>> s
'James\tJason\tEthan'
>>> s2 = s.expandtabs()
>>> s2
'James   Jason   Ethan'
>>> print(s, s2, sep='\n')
James   Jason   Ethan
James   Jason   Ethan
>>> 
si vous souhaitez remplacer un caractère tab (\t) par très exactement 8 espaces et ainsi avoir chaque prénom espacé de 8 blancs, veuillez préférer l'utilisation de la méthode str.replace.

Notez enfin, qu'il est possible de changer le nombre d'espaces considérés par colonne en fixant le paramètre tabsize.

>>> s = "James\tJason\tEthan"
>>> s2 = s.expandtabs(10)
>>> print(s, s2, sep='\n')
James   Jason   Ethan
James     Jason     Ethan
>>> 

help(str.expandtabs)

Return a copy where all tab characters are expanded using spaces.

If tabsize is not given, a tab size of 8 characters is assumed.

Paramètres

ParamètreDescription
 self : str 
La chaîne de caractères courante. Rappel : self est implicitement passée lors de l'appel de la méthode.
 tabsize : int = 8 
Le nombre de caractères devant être utilisé par colonne.

Valeur de retour

La valeur de retour est de type str.

Elle correspond à une copie de la chaîne de caractères courante dans laquelle les tabulations sont remplacées par le nombre espaces adapté.

Exception

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
#!/usr/bin/python3

# Une chaîne multi-lignes contenant un code Python avec des tabulations.
python_code_sample = """counter = 10
while counter > 0:
\tif counter != 5:
\t\tprint(counter)
\tcounter -= 1"""

# On affiche le programme initial.
print(python_code_sample)

print("---------------------------------")

# On reformate le code avec 4 blancs (comme les tabulations sont 
# systématiquement en tête, les méthodes expandtabs et replace 
# produiront le même résultat).
final_code_sample = python_code_sample.expandtabs(4)

# On affiche le code.
print(final_code_sample)
Exemple d'utilisation de la méthode expandtabs.

Et voici les résultats produits par cet exemple.

$> python3 sample.py
counter = 10
while counter > 0:
        if counter != 5:
                print(counter)
        counter -= 1
---------------------------------
counter = 10
while counter > 0:
    if counter != 5:
        print(counter)
    counter -= 1
$>

Voir aussi

Classe str
Méthode str.replace