Convertire un numero intero in stringa?


1362

Voglio convertire un numero intero in una stringa in Python. Lo sto digitando invano:

d = 15
d.str()

Quando provo a convertirlo in stringa, mostra un errore come intse non avesse alcun attributo chiamato str.

Risposte:


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

Collegamenti alla documentazione:

La conversione in una stringa viene effettuata con la str()funzione builtin , che sostanzialmente chiama il __str__()metodo del suo parametro.



62

Non c'è typecast e nessuna coercizione di tipo in Python. Devi convertire la tua variabile in modo esplicito.

Per convertire un oggetto in stringa si utilizza la str()funzione. Funziona con qualsiasi oggetto che ha un metodo chiamato __str__()definito. Infatti

str(a)

è equivalente a

a.__str__()

Lo stesso se vuoi convertire qualcosa in int, float, ecc.


questa soluzione mi ha aiutato, stavo convertendo una stringa alfanumerica in una stringa numerica, sostituendo le lettere con i loro valori ascii, tuttavia usando direttamente la funzione str () non funzionava, ma __str __ () ha funzionato. Esempio (python2.7); s = "14.2.2.10a2" codice non funzionante: print "" .join ([str (ord (c)) if (c.isalpha ()) else c per c in s]) codice funzionante: print "" .join ([ord (c) .__ str __ () if (c.isalpha ()) else c per c in s]) Output atteso: 14.2.2.10972
Jayant

18

Per gestire input non interi:

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

In Python => 3.6 puoi usare la fformattazione:

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

7

Per Python 3.6 puoi usare la nuova funzione f-string per convertire in stringa ed è più veloce rispetto alla funzione str (), è usato così:

age = 45
strAge = f'{age}'

Python fornisce la funzione str () per questo motivo.

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

Per una risposta più dettagliata puoi consultare questo articolo: Conversione di Python Int in String e Python String in Int



6

Può usare %so.format

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

(O)

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

5

Per chi desidera convertire int in stringa in cifre specifiche, si consiglia il metodo seguente.

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

Per maggiori dettagli, puoi fare riferimento alla domanda Stack Overflow Visualizza il numero con zeri iniziali .


4

Con l'introduzione delle f-string in Python 3.6, funzionerà anche:

f'{10}' == '10'

In realtà è più veloce di chiamare str(), a costo di leggibilità.

In effetti, è più veloce della %xformattazione delle stringhe e .format()!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.