2012-02-27 6 views
4

est-il un moyen de concaténer chiffres en Python, permet de dire que j'ai le codeImprimer la concaténation des chiffres de deux nombres en Python

print(2, 1) 

Je veux imprimer 21, pas 2 1 et si je l'utilise "+", il imprime 3. Y a-t-il un moyen de le faire?

+0

Titre changé de "Concatenation in python"; Cela ne devrait pas être interprété comme la personne qui pose des questions sur les chiffres. – ninjagecko

+0

Marquage de 'python-3', puisque vous êtes sûr si votre résultat est' 2 1' et non '(2, 1)'. –

Répondre

8

Vous pourriez peut-être convertir les entiers en:

print(str(2)+str(1)) 
9

Utilisez l'opérateur de formatage de chaîne:

print "%d%d" % (2, 1) 

EDIT: En Python 2.6+, vous pouvez également utiliser la méthode format() d'une chaîne:

print("{0}{1}".format(2, 1)) 
+0

L'OP utilise clairement 'python-3', ce qui signifie que'% 'est obsolète. –

+2

'%' n'a pas été déprécié. Le plan était de le faire dans Python 3.1, mais ils ne l'ont pas fait. Vous pouvez toujours l'utiliser en 3.2 sans aucun avertissement. – kindall

+1

str.format est actuellement disponible en python 2.6+, pas seulement python3 + – strcat

5

En effet, 2 et 1 sont des entiers, pas des chaînes. En général, si vous voulez faire cela dans n'importe quel contexte en plus d'imprimer, vous devez d'abord les convertir en chaînes. Par exemple:

myNumber1 = ... 
myNumber2 = ... 
myCombinedNumberString = str(myNumber1)+str(myNumber2) 

Dans le contexte de l'impression, vous feriez bien plutôt ce que Rafael suggère dans ses réponses (opérateur de format de chaîne). Je personnellement le faire comme:

print('{}{}'.format(2,1)) 
8

Vous pouvez changer le séparateur utilisé par la fonction d'impression:

print(2, 1, sep="") 

Si vous utilisez python2.x, vous pouvez utiliser

from __future__ import print_function 

en haut du fichier.

6

Si vous avez beaucoup de chiffres utiliser str.join() + map():

print(''.join(map(str, [2,1]))) 

Sinon, pourquoi ne pas simplement faire:

print(2*10+1) 
3

Si vous utilisez 3.x ou python 2.7, utilisez format

print("{0}{1}".format(2, 1)) 
+0

2.6+, en fait: http://docs.python.org/release/2.6/library/stdtypes.html#str.format –

2
>>> import sys 
>>> values = [1, 2, 3, 4, 5] 
>>> for value in values: 
     sys.stdout.write(str(value)) 
12345 
-1

utiliser simplement

c="2"+"1" 
print(c) 

Il vous donnera 21.

0

Si nous ne voulons pas le convertir en chaîne.

val = [1,2,3,4] réduire (lambda x, y: x * 10 + y, val)

ou après l'obtention du résultat. le convertir en entier.

Questions connexes