Risposte:
>>> 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.
Prova questo:
str(i)
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.
>>> 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
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
Il modo più decente secondo me è ``.
i = 32 --> `i` == '32'
repr(i)
, quindi sarà strano per molto. (Prova i = `2 ** 32`; print i
)
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 .
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 %x
formattazione delle stringhe e .format()
!