web-dev-qa-db-fra.com

Conversion d'un entier en chaîne?

Je veux convertir un entier en chaîne en Python. Je le tape en vain:

d = 15
d.str()

Lorsque j'essaie de le convertir en chaîne, il affiche une erreur telle que int ne possède aucun attribut appelé str.

1246
Hick
>>> str(10)
'10'
>>> int('10')
10

Liens vers la documentation:

La conversion en chaîne est effectuée à l'aide de la fonction intégrée str(), qui appelle essentiellement la méthode __str__() de son paramètre.

1928
Bastien Léonard

Essaye ça:

str(i)

Il n'y a pas de conversion de type et pas de contrainte de type en Python. Vous devez convertir votre variable de manière explicite.

Pour convertir un objet en chaîne, utilisez la fonction str(). Cela fonctionne avec n'importe quel objet ayant une méthode appelée __str__() définie. En réalité

str(a)

est équivalent à

a.__str__()

Même chose si vous voulez convertir quelque chose en int, float, etc.

54
Andrea Ambu

Pour gérer les entrées non entières:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0
17
nik
>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5
14
maxaposteriori

Dans Python => 3.6, vous pouvez utiliser le formatage f:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
10
SuperNova

La façon la plus décente à mon avis est de ".

i = 32   -->    `i` == '32'
6
Nikolas

Pour ceux qui veulent convertir int en chaîne avec des chiffres spécifiques, la méthode ci-dessous est recommandée.

month = "{0:04d}".format(localtime[1])

Pour plus de détails, vous pouvez vous reporter à la question Stack Overflow numéro affiché avec zéros au début.

5
Gearon

Peut utiliser %s ou .format

>>> "%s" % 10
'10'
>>>

(OU)

>>> '{}'.format(10)
'10'
>>>
5
SuperNova

Avec l'introduction des chaînes de caractères dans Python 3.6, cela fonctionnera également:

f'{10}' == '10'

En réalité, il est plus rapide que d’appeler str(), au prix de la lisibilité.

En fait, il est plus rapide que %x le formatage de chaîne et .format()!

2
Alec Alameddine

Pour Python 3.6, vous pouvez utiliser la nouvelle fonctionnalité f-strings pour convertir en chaîne. Elle est plus rapide que la fonction str (). Elle est utilisée comme ceci:

age = 45
strAge = f'{age}'

Python fournit la fonction str () pour cette raison.

digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>

Pour une réponse plus détaillée, vous pouvez consulter cet article: Conversion de Python Int en chaîne et de Python chaîne en entier

1
Mohamed Makkaoui