web-dev-qa-db-fra.com

Concaténer une chaîne et un entier en python

En python dites que vous avez

s = "string"
i = 0
print s+i

vous donnera l'erreurso vous écrivez

print s+str(i) 

ne pas avoir d'erreur.

Je pense que c'est une façon assez maladroite de gérer la concaténation de chaînes int et string . Même Java n'a pas besoin de transtyper explicitement String pour effectuer ce type. concaténation c'est-à-dire sans transtypage explicite en Python?

110
specialscope

Formatage de chaîne moderne:

"{} and {}".format("string", 1)
145
user647772

Pas de formatage de chaîne:

>> print 'Foo',0
Foo 0
79
Burhan Khalid

Formatage de chaîne, utilisant la méthode new-style .format() (avec les valeurs par défaut .format () fournies):

 '{}{}'.format(s, i)

Ou le plus ancien, mais "persistant", %- formatage:

 '%s%d' %(s, i)

Dans les deux exemples ci-dessus, il y a no d'espace entre les deux éléments concaténés. Si vous avez besoin d'espace, vous pouvez simplement l'ajouter dans les chaînes de format.

Ceux-ci fournissent beaucoup de contrôle et de flexibilité sur la manière de concaténer des éléments, leur espace, etc. Pour plus de détails sur spécifications de format, voir ceci .

29
Levon

Python est un langage intéressant car s'il existe généralement un (ou deux) moyen "évident" d'accomplir une tâche donnée, la flexibilité existe toujours.

s = "string"
i = 0

print (s + repr(i))

L'extrait de code ci-dessus est écrit en syntaxe Python3, mais les parenthèses après l'impression étaient toujours autorisées (facultatif) jusqu'à ce que la version 3 les rende obligatoires.

J'espère que cela t'aides.

Caitlin

13
CaitlinG

la méthode format () peut être utilisée pour concaténer une chaîne et un entier

print(s+"{}".format(i))
0
Aakash Wadhwa