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?
Formatage de chaîne moderne:
"{} and {}".format("string", 1)
Pas de formatage de chaîne:
>> print 'Foo',0
Foo 0
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 .
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
la méthode format () peut être utilisée pour concaténer une chaîne et un entier
print(s+"{}".format(i))