Funkcja str () zwraca wersję łańcuchową danego obiektu.
Składnia str()
to:
str (obiekt, kodowanie = 'utf-8', błędy = 'ścisłe')
str () Parametry
str()
Sposób trzy parametry:
- obiekt -
object
którego reprezentacja w postaci ciągu ma zostać zwrócona. Jeśli nie zostanie podany, zwraca pusty ciąg - encoding - Kodowanie danego obiektu. Wartości domyślne UTF-8, jeśli nie są dostarczane.
- błędy - odpowiedź w przypadku niepowodzenia dekodowania. Domyślnie
'strict'
.
Istnieje sześć typów errors
:
- ścisłe - domyślna odpowiedź, która zgłasza
UnicodeDecodeError
wyjątek w przypadku niepowodzenia - ignore - ignoruje niekodowalny Unicode z wyniku
- replace - zamienia niekodowalny Unicode na znak zapytania
- xmlcharrefreplace - wstawia odwołanie do znaku XML zamiast niekodowalnego Unicode
- backslashreplace - wstawia
uNNNN
sekwencję espace zamiast niekodowalnego Unicode - namereplace - wstawia
N(… )
sekwencję ucieczki zamiast niekodowalnego Unicode
Wartość zwracana z str ()
str()
Metoda zwraca ciąg znaków, który jest uważany za nieformalnego lub ładnie druku reprezentację danego obiektu.
Przykład 1: Konwertuj na ciąg
Jeśli parametr kodowania i błędów nie jest podany, str()
wewnętrznie wywołuje __str__()
metodę obiektu.
Jeśli nie może znaleźć __str__()
metody, zamiast tego wywołuje repr (obj).
result = str(10) print(result)
Wynik
10
Uwaga: zmienna wynikowa będzie zawierać ciąg.
Wypróbuj również te polecenia w konsoli Pythona.
>>> str ('Adam')
>>> str (b'Python! ')
Przykład 2: Jak str () działa dla bajtów?
Jeśli podano parametr encoding
i errors
, pierwszy parametr, obiekt , powinien być obiektem podobnym do bajtów (bajty lub bajty).
Jeśli obiekt jest bajtów lub bytearray , str()
wewnętrznie wywołuje bytes.decode(encoding, errors)
.
W przeciwnym razie pobiera obiekt bajtów w buforze przed wywołaniem decode()
metody.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Wynik
pythn
W tym przypadku znak 'ö'
nie może być dekodowany przez ASCII. Dlatego powinno dać błąd. Jednak ustawiliśmy errors ='ignore'
. Dlatego Python ignoruje znak, którego nie można zdekodować str()
.