Conversion d'un entier en chaîne?


1362

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

d = 15
d.str()

Lorsque j'essaie de le convertir en chaîne, il affiche une erreur comme intsi aucun attribut n'était appelé str.

Réponses:


2095
>>> 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.



62

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.


cette solution m'a aidé, je convertissais une chaîne alphanumérique en une chaîne numérique, remplaçant les lettres par leurs valeurs ascii, mais l'utilisation directe de la fonction str () ne fonctionnait pas, mais __str __ () fonctionnait. Exemple (python2.7); s = "14.2.2.10a2" code non fonctionnel: print "" .join ([str (ord (c)) if (c.isalpha ()) else c for c in s]) code fonctionnel: print "" .join ([ord (c) .__ str __ () if (c.isalpha ()) else c for c in s]) Sortie attendue: 14.2.2.10972
Jayant

18

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

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0

14
>>> 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

11

En Python => 3.6, vous pouvez utiliser le fformatage:

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

7

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


6

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

i = 32   -->    `i` == '32'

3
Notez que cela équivaut à repr(i), donc ce sera bizarre pour longtemps. (Essayez i = `2 ** 32`; print i)

16
Cela a été déprécié en python 2 et complètement supprimé en python 3, donc je ne suggère plus de l'utiliser. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99

6

Peut utiliser %sou.format

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

(OU)

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

5

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 .


4

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 %xle formatage de chaînes et .format()!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.