web-dev-qa-db-fra.com

Comment ajouter de l'espace entre deux variables après une impression en Python

Python étant relativement nouveau, je m'essaye à un code simple. Cependant, dans l'une des pratiques, mon code est censé afficher des nombres en pouces à gauche et la conversion des nombres à droite;

count = 1
conv = count * 2.54
print count, conv

Je veux que la sortie soit imprimée avec un peu d'espace entre eux;

count = 1
conv = count * 2.54
print count,     conv

Je n'arrive pas à comprendre comment faire cela. J'ai cherché partout, mais tout ce que je peux trouver, ce sont des gens qui essaient de se débarrasser de l'espace. Si quelqu'un pouvait me guider dans la bonne direction, je serais reconnaissant.

Oh, et je viens de me rendre compte que J'utilise Python 2.7, pas 3.x . Pas sûr que ce soit important.

8
Hebon

Un moyen simple serait:

print str(count) + '  ' + str(conv)

Si vous avez besoin de plus d'espaces, ajoutez-les simplement à la chaîne:

print str(count) + '    ' + str(conv)

Une manière plus sophistiquée, utilisant la nouvelle syntaxe pour le formatage de chaîne:

print '{0}  {1}'.format(count, conv)

Ou en utilisant l'ancienne syntaxe, en limitant le nombre de décimales à deux:

print '%d  %.2f' % (count, conv)
8
Óscar López

Utilisez string interpolation à la place.

print '%d   %f' % (count,conv)

Vous pouvez également utiliser ljust/rjust pour rendre le formatage plus agréable.

print "%s%s" % (str(count).rjust(10), conv)

ou

print str(count).ljust(10), conv
3
Gladius

Un avertissement rapide, c'est une réponse assez verbeuse.

l’impression est parfois délicate, j’ai eu quelques problèmes avec elle au début. Ce que vous voulez, c'est quelques espaces entre deux variables après les avoir correctement imprimées? Il existe de nombreuses façons de procéder, comme indiqué dans les réponses ci-dessus.

Ceci est votre code:

count = 1
conv = count * 2.54
print count, conv

Sa sortie est la suivante:

1 2.54

Si vous voulez des espaces entre les deux, vous pouvez le faire de manière naïve en collant une chaîne d'espaces entre eux. Les variables count et conv doivent être converties en types de chaîne pour les concaténer (les joindre). Ceci est fait avec str ().

print (str(count) + "           " + str(conv))
### Provides an output of:
1           2.54

Pour ce faire, la méthode la plus récente et la plus pythonique consiste à utiliser le signe% conjointement avec une lettre pour indiquer le type de valeur que nous utilisons. Ici, j'utilise des traits de soulignement au lieu d'espaces pour indiquer leur nombre. Le modulo avant les dernières valeurs indique simplement à python d'insérer les valeurs suivantes dans l'ordre indiqué.

print ('%i____%s' % (count, conv))
### provides an output of:
1____2.54

J'ai utilisé% i pour compter car il s'agit d'un nombre entier et% s pour conv, car utiliser% i dans ce cas nous donnerait "2" au lieu de "2.54" Techniquement, j'aurais pu utiliser les deux% s, mais c'est parfait.

J'espère que ça aide!

-Joseph

PS Si vous voulez vous compliquer la mise en forme, vous devriez regarder chez prettyprint de grandes quantités de texte, tels que des dictionnaires et des listes de triplets (importés en tant que pprint), ainsi que Qui utilise des onglets automatiques, des espaces déchet.

Voici quelques informations supplémentaires sur les chaînes dans les documents python . http://docs.python.org/library/string.html#module-string

2
Joseph Daniels

C'est une façon stupide/hacky

print count,    
print conv
1
Cadoo

print str(count) + ' ' + str(conv) - Cela n'a pas fonctionné. Cependant, remplacer + par , fonctionne pour moi

0
Daniel