Python str ()

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().

Interesujące artykuły...