Функція str () повертає строкову версію даного об'єкта.
Синтаксис str()
:
str (об'єкт, кодування = 'utf-8', помилки = 'строге')
str () Параметри
str()
Метод приймає три параметри:
- об'єкт -
object
рядкове представлення якого потрібно повернути. Якщо не вказано, повертає порожній рядок - кодування - кодування даного об'єкта. За замовчуванням UTF-8, якщо не надано.
- помилки - відповідь, коли декодування не вдається. За замовчуванням
'strict'
.
Існує шість типів errors
:
- строгий - відповідь за замовчуванням, що викликає
UnicodeDecodeError
виняток у випадку відмови - ігнорувати - ігнорує незрозумілий Unicode з результату
- replace - замінює некодуваний Unicode на знак питання
- xmlcharrefreplace - вставляє посилання на символи XML замість некодуваного Unicode
- backslashreplace - вставляє
uNNNN
послідовність espace замість некодируемого Unicode - namereplace - вставляє
N(… )
послідовність екрану замість нешифрованого Unicode
Повернути значення з str ()
str()
Метод повертає рядок, яка вважається неформальним або добре для друку подання даного об'єкта.
Приклад 1: Перетворити на рядок
Якщо параметр кодування та помилки не надається, str()
внутрішньо викликає __str__()
метод об'єкта.
Якщо він не може знайти __str__()
метод, він замість цього викликає repr (obj).
result = str(10) print(result)
Вихідні дані
10
Примітка: Змінна результату міститиме рядок.
Також спробуйте ці команди на консолі Python.
>>> str ('Адам')
>>> str (b'Python! ')
Приклад 2: Як str () працює для байтів?
Якщо encoding
і errors
параметр надано, першим параметром, об'єктом , повинен бути байтовий об'єкт (байти або байтовий масив).
Якщо об'єктом є байти або байт-масив , str()
внутрішні виклики bytes.decode(encoding, errors)
.
В іншому випадку він отримує об’єкт bytes в буфері перед викликом decode()
методу.
# bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore'))
Вихідні дані
pythn
Тут символ 'ö'
не може бути декодований ASCII. Отже, це повинно давати помилку. Однак ми встановили errors ='ignore'
. Отже, Python ігнорує символ, який не може бути декодований str()
.