Réponses:
>>> str(10)
'10'
>>> int('10')
10
Liens vers la documentation:
La conversion en chaîne se fait avec la str()
fonction intégrée , qui appelle essentiellement la __str__()
méthode de son paramètre.
Essaye ça:
str(i)
Il n'y a pas de transtypage et aucune contrainte de type en Python. Vous devez convertir votre variable de manière explicite.
Pour convertir un objet en chaîne, vous utilisez la str()
fonction. Il fonctionne avec tout objet doté d'une méthode appelée __str__()
defined. En réalité
str(a)
est équivalent à
a.__str__()
De même si vous voulez convertir quelque chose en int, float, etc.
>>> 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
Pour Python 3.6, vous pouvez utiliser la nouvelle fonctionnalité f-strings pour convertir en chaîne et c'est plus rapide que la fonction str (), elle est utilisée comme ça:
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 Python String en Int
La façon la plus décente à mon avis est ``.
i = 32 --> `i` == '32'
repr(i)
, donc ce sera bizarre pour longtemps. (Essayez i = `2 ** 32`; print i
)
Pour quelqu'un qui souhaite convertir int en chaîne en 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 référer au numéro d'affichage de la question de dépassement de pile avec des zéros en tête .
Avec l'introduction des chaînes f dans Python 3.6, cela fonctionnera également:
f'{10}' == '10'
C'est en fait plus rapide que d'appeler str()
, au détriment de la lisibilité.
En fait, c'est plus rapide que %x
le formatage de chaînes et .format()
!