La funzione str () restituisce la versione stringa dell'oggetto specificato.
La sintassi di str()
è:
str (oggetto, codifica = 'utf-8', errori = 'rigoroso')
str () Parametri
Il str()
metodo accetta tre parametri:
- oggetto - La
object
cui rappresentazione di stringa deve essere restituita. Se non fornito, restituisce la stringa vuota - encoding - Codifica dell'oggetto dato. Valori predefiniti di UTF-8 quando non forniti.
- errori - Risposta quando la decodifica fallisce. Il valore predefinito è
'strict'
.
Esistono sei tipi di errors
:
- rigoroso - risposta predefinita che solleva
UnicodeDecodeError
un'eccezione in caso di errore - ignora : ignora l'Unicode non codificabile dal risultato
- sostituisci : sostituisce Unicode non codificabile con un punto interrogativo
- xmlcharrefreplace : inserisce un riferimento a caratteri XML invece di Unicode non codificabile
- backslashreplace - inserisce una
uNNNN
sequenza espace invece di Unicode non codificabile - namereplace - inserisce una
N(… )
sequenza di escape invece di Unicode non codificabile
Valore restituito da str ()
Il str()
metodo restituisce una stringa, che è considerata una rappresentazione informale o ben stampabile dell'oggetto dato.
Esempio 1: converti in stringa
Se non viene fornito il parametro encoding and errors , str()
chiama internamente il __str__()
metodo di un oggetto.
Se non riesce a trovare il __str__()
metodo, chiama invece repr (obj).
result = str(10) print(result)
Produzione
10
Nota: la variabile del risultato conterrà una stringa.
Prova anche questi comandi sulla console Python.
>>> str ('Adam')
>>> str (b'Python! ')
Esempio 2: come funziona str () per i byte?
Se viene fornito encoding
e errors
parametro, il primo parametro, oggetto , dovrebbe essere un oggetto simile a byte (byte o bytearray).
Se l'oggetto è byte o bytearray , str()
chiama internamente bytes.decode(encoding, errors)
.
In caso contrario, ottiene l'oggetto byte nel buffer prima di chiamare il decode()
metodo.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Produzione
pitone
Qui, il carattere 'ö'
non può essere decodificato da ASCII. Quindi, dovrebbe dare un errore. Tuttavia, abbiamo impostato l'estensione errors ='ignore'
. Quindi, Python ignora il carattere che non può essere decodificato str()
.