web-dev-qa-db-fra.com

Comment remplir une chaîne d'une longueur fixe avec des espaces en Python?

Je suis sûr que cela est couvert à beaucoup d'endroits, mais je ne connais pas le nom exact de l'action que j'essaie de faire, je ne peux donc pas vraiment le rechercher. Je lis un livre officiel de Python depuis 30 minutes pour essayer de savoir comment faire cela. 

Problème: J'ai besoin de mettre une chaîne dans une certaine longueur "champ". 

Par exemple, si le champ de nom comptait 15 caractères et que mon nom était John, j'obtiendrais "John" suivi de 11 espaces pour créer le champ de 15 caractères. 

J'ai besoin que cela fonctionne pour n'importe quelle chaîne insérée dans la variable "nom". 

Je sais que ce sera probablement une forme de formatage, mais je ne trouve pas la manière exacte de le faire. L'aide serait appréciée. 

30
user2977230

C'est super simple avec format:

>>> a = "John"
>>> "{:<15}".format(a)
'John           '
67
Games Brainiac

Vous pouvez utiliser la méthode ljust sur les chaînes .

>>> name = 'John'
>>> name.ljust(15)
'John           '

Notez que si le nom comporte plus de 15 caractères, ljust ne le tronquera pas. Si vous voulez avoir exactement 15 caractères, vous pouvez couper la chaîne résultante:

>>> name.ljust(15)[:15]
49
Ismail Badawi
string = ""
name = raw_input() #The value at the field
length = input() #the length of the field
string += name
string += " "*(length-len(name)) # Add extra spaces

Cela ajoutera le nombre d'espaces nécessaires, à condition que le champ ait une longueur> = la longueur du nom fourni.

1
Aswin Murugesh

Commencez par vérifier si la longueur de la chaîne doit être raccourcie, puis ajoutez des espaces jusqu'à la longueur du champ. 

fieldLength = 15
string1 = string1[0:15] # If it needs to be shortened, shorten it
while len(string1) < fieldLength:
    Rand += " "
1
Matt

Cela ne fait qu'ajouter à mon problème, cela ajoute simplement un espace jusqu'à ce que la longueur de chaîne dépasse le min_length que vous lui donnez.

def format_string(str, min_length):
    while len(str) < min_length:
        str += " "
    return str
1
dragon40226
name = "John" // your variable
result = (name+"               ")[:15] # this adds 15 spaces to the "name"
                                       # but cuts it at 15 characters
1
user2629998