Question Conversion d'entier en chaîne en Python?


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

t=raw_input()
c=[]
for j in range(0,int(t)):
    n=raw_input()
    a=[]
    a,b= (int(i) for i in n.split(' '))
    d=pow(a,b)
    d.str()
    c.append(d[0])
for j in c:
    print j

Lorsque j'essaie de le convertir en chaîne, il montre une erreur comme int n'a aucun attribut appelé str.


993
2018-06-07 10:22


origine


Réponses:


>>> str(10)
'10'
>>> int('10')
10

Liens vers la documentation:

Le problème semble provenir de cette ligne: d.str().

La conversion en chaîne est faite avec le builtin str() fonction, qui appelle essentiellement le __str__() méthode de son paramètre.

De plus, il ne devrait pas être nécessaire d'appeler pow(). Essayez d'utiliser le ** opérateur.


1561
2018-06-07 10:24



Essaye ça:

str(i)

79
2018-06-07 10:23



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

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

str(a)

est équivalent à

a.__str__()

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


43
2018-06-07 10:30



a = 2

Vous pouvez utiliser str(a) ce qui vous donne un objet chaîne de int(2).


20
2018-02-10 18:47



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

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

Ok, si je prends votre dernier code et réécris un peu pour le faire fonctionner avec Python:

t=raw_input()
c=[]
for j in range(0,int(t)):
    n=raw_input()
    a=[]
    a,b= (int(i) for i in n.split(' '))
    d=pow(a,b)
    d2=str(d)
    c.append(d2[0])
for j in c:
    print j

Cela me donne quelque chose comme:

>>> 2
>>> 8 2
>>> 2 3
6
8

Quels sont les premiers caractères du résultat de la chaîne pow(a,b). Qu'essayons-nous de faire ici?


14
2018-06-07 10:32



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

12
2018-06-07 10:24



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

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

6
2018-05-05 21:55



Peut utiliser %s ou .format

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

(OU)

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

3
2017-12-11 10:57



Pour quelqu'un qui veut convertir int en chaîne dans 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 référer à la question Stack Overflow Afficher le nombre avec les zéros en tête.


1
2018-02-09 01:57



En Python => 3.6 vous pouvez utiliser f formatage:

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

0
2017-07-20 13:55