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 -
objectktó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
UnicodeDecodeErrorwyją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
uNNNNsekwencję 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 encodingi 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().








