Comment puis-je ajouter de l'espace entre les deux variables à l'issue d'une impression en Python
Je suis assez nouveau dans Python, donc je tente ma main à un code simple. Toutefois, dans l'une des pratiques que mon code est censé afficher des nombres dans les pouces sur la gauche et la conversion de nombres sur la droite;
count = 1
conv = count * 2.54
print count, conv
Je veux la sortie d'impression avec un espace entre eux;
count = 1
conv = count * 2.54
print count, conv
Je ne peux pas comprendre comment le faire. J'ai cherché partout, mais tout ce que je peux trouver sont des gens qui essaient de se débarrasser de l'espace. Si quelqu'un pouvait juste me conduire dans la bonne direction, je lui en serais reconnaissant.
Oh, et je viens de réaliser que j'utilise Python 2.7, pas 3.x. Vous ne savez pas si c'est important.
OriginalL'auteur Hebon | 2012-04-02
Vous devez vous connecter pour publier un commentaire.
Un moyen simple serait:
Si vous avez besoin de plus d'espaces, il suffit de les ajouter à la chaîne:
Un amateur moyen, à l'aide de la nouvelle syntaxe de mise en forme de chaîne:
Ou à l'aide de l'ancienne syntaxe, de limiter le nombre de décimales à deux:
print count, conv
Fixe la première, pour chacun d'eux: vous pouvez ajouter autant de cases que vous avez besoin entre les!
La première ne fonctionne pas parce que vous ne pouvez pas ajouter un entier en une chaîne de caractères, ni une chaîne de caractères à un flotteur. Pour obtenir plus d'espace dans les deuxième et troisième exemples, il suffit de mettre le nombre requis de places de entre le {0} et {1} ou %d et %f.
correction de tous les exemples avec deux espaces d'entre-deux. Il est très simple d'ajouter les espaces que vous avez besoin, il suffit d'ajouter dans le milieu. Aussi, fixe le dernier exemple pour l'affichage de seulement deux décimales
J'ai réussi à éliminer le Traceback par se débarrasser de certaines de code inutilisé, cependant, cela ne fonctionne toujours pas. À l'aide de
print str(count) + ' ' + str(conv)
il ne brasse de telle sorte qu'ils apparaissent comme "12.54".OriginalL'auteur Óscar López
Utilisation chaîne d'interpolation à la place.
Inches Centimeters 1 2.540000
Afin d'ajuster les
%f
spécificateur.OriginalL'auteur Ignacio Vazquez-Abrams
Alternativement, vous pouvez utiliser ljust/rjust pour faire la mise en forme plus agréable.
ou
printf
parents. Il est plus facile à comprendre qu'unprintf
spécificateur de format et fait exactement ce qu'il indique sur l'étain.OriginalL'auteur Gladius
Un rapide avertissement, c'est un assez laconique réponse.
impression est difficile parfois, j'ai eu quelques problèmes avec elle quand j'ai commencé. Ce que vous voulez, c'est un peu d'espaces entre deux variables après l'impression de leur droit? Il y a beaucoup de façons de le faire, comme indiqué dans les réponses ci-dessus.
C'est votre code:
Il est de sortie est: est-ce
Si vous voulez des espaces entre les deux, vous pouvez faire le naïf façon d'en coller une chaîne d'espaces entre eux. Les variables de comptage et conv besoin d'être converti en chaîne de types pour concaténer(join) ensemble. C'est fait avec str().
Pour ce faire est la plus récente, plus pythonic façon, nous utilisons le signe % en conjonction avec une lettre pour désigner le type de valeur que nous utilisons. J'utilise ici souligne la place des espaces pour montrer combien elles sont. Le modulo avant la dernière des valeurs juste dit à python pour insérer les valeurs suivantes dans l'ordre que nous avons fourni.
J'ai utilisé %i pour le comte, car il est un nombre entier, et %s pour la conv, car l'utilisation de %i dans cet exemple, pourrait nous fournir "2" au lieu de "pas de 2,54" Techniquement, je pourrais l'ai utilisé à la fois %s, mais c'est du tout bon.
J'espère que cela aide!
-Joseph
P. S.
si vous souhaitez obtenir compliquée avec votre mise en forme, vous devriez regarder prettyprint de grandes quantités de texte tels que les dictionnaires et les n-uplet des listes(importés en tant que pprint) ainsi que
automatique des onglets, l'espacement et les autres frais indésirable.
Voici quelques informations à propos des chaînes dans le python docs.
http://docs.python.org/library/string.html#module-string
Merci, je suis heureux d'avoir pu être utile!
OriginalL'auteur Joseph Daniels
C'est un stupide/hacky façon
OriginalL'auteur Cadoo
print str(count) + ' ' + str(conv)
- Cela ne fonctionne pas. Cependant, le remplacement de+
avec,
fonctionne pour moiOriginalL'auteur Daniel
Vous devez utiliser python Conversion Explicite Drapeau PEP-3101
'My name is {0!s:10} {1}'.format('Dunkin', 'Donuts')
ou
'My name is %-10s %s' % ('Dunkin', 'Donuts')
https://www.python.org/dev/peps/pep-3101/
OriginalL'auteur knittledan