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
.
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.
Pour gérer les entrées non entières:
number = raw_input()
try:
value = int(number)
except ValueError:
value = 0
>>> 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
Dans Python => 3.6, vous pouvez utiliser le formatage f
:
>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
La façon la plus décente à mon avis est de ".
i = 32 --> `i` == '32'
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.
Peut utiliser %s
ou .format
>>> "%s" % 10
'10'
>>>
(OU)
>>> '{}'.format(10)
'10'
>>>
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()
!
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