363 votes

Python String et Integer concaténation

Je veux créer des chaînes à l'aide de entier ajouté, dans une boucle for. Comme ceci:

for i in range [1,10]:
  string="string"+i

Mais il renvoie une erreur:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Quelle est la meilleure façon pour concaténer des String et Integer?

292voto

Anirban Nag Points 1109

Vous pouvez utiliser :

string = 'string'
for i in range(11):
    string +=`i`
print string

Il permet d'imprimer string012345678910.

Pour obtenir de l' string0, string1 ..... string10 vous pouvez l'utiliser comme @VOUS l'avez suggéré

>>> string = "string"
>>> [string+`i` for i in range(11)]

270voto

YOU Points 44812
for i in range (1,10):
    string="string"+str(i)

Pour obtenir de l' string0, string1 ..... string10, vous pourriez faire comme

>>> ["string"+str(i) for i in range(11)]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9', 'string10']

36voto

Rizwan Kassim Points 2467
for i in range[1,10]: 
  string = "string" + str(i)

L' str(i) fonction convertit un entier en une chaîne de caractères.

35voto

string = 'string%d' % (i,)

21voto

Tim Pietzcker Points 146308
for i in range(11):
    string = "string{0}".format(i)

Ce que vous avez fait (range[1,10]) est

  • une exception TypeError depuis parenthèses indiquent un indice (a[3]) ou une tranche (a[3:5]) d'une liste,
  • un SyntaxError depuis [1,10] n'est pas valide, et
  • un double hors-par-une erreur, puisqu' range(1,10) est [1, 2, 3, 4, 5, 6, 7, 8, 9], et vous semblez vouloir [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Et string = "string" + i est une erreur TypeError puisque vous ne pouvez pas ajouter un entier en une chaîne de caractères (contrairement à JavaScript).

Regardez la documentation de Python de la nouvelle chaîne de formatage de la méthode, il est très puissant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X