Python str ()

Funkcia str () vráti reťazcovú verziu daného objektu.

Syntax str()je:

 str (object, encoding = 'utf-8', errors = 'strict')

str () Parametre

str() Metóda má tri parametre:

  • object - Objekt objectktorého reťazcového zastúpenia sa má vrátiť. Ak nie je uvedený, vráti prázdny reťazec
  • encoding - kódovanie daného objektu. Predvolené hodnoty UTF-8, ak nie sú poskytnuté.
  • chyby - reakcia pri zlyhaní dekódovania. Predvolené hodnoty pre 'strict'.

Existuje šesť typov errors:

  • strict - predvolená odpoveď, ktorá vyvolá UnicodeDecodeErrorvýnimku pri zlyhaní
  • ignore - ignoruje nekódovateľný Unicode z výsledku
  • nahradiť - nahradí nekódovateľný kód Unicode otáznikom
  • xmlcharrefreplace - vloží odkaz na znak XML namiesto nekódovateľného Unicode
  • backslashreplace - vloží uNNNNespace sekvenciu namiesto nekódovateľného Unicode
  • namereplace - vloží N(… )únikovú sekvenciu namiesto nekódovateľného Unicode

Vrátiť hodnotu z str ()

str()Metóda vracia reťazec, ktorý je považovaný za neformálne alebo pekne vytlačení reprezentácie daného objektu.

Príklad 1: Previesť na reťazec

Ak nie je zadaný parameter kódovania a chýb , str()interne sa volá __str__()metóda objektu.

Ak nenájde __str__()metódu, namiesto toho zavolá repr (obj).

 result = str(10) print(result)

Výkon

 10 

Poznámka: Výsledná premenná bude obsahovať reťazec.

Tieto príkazy tiež vyskúšajte na konzole Python.

 >>> str ('Adam')
 >>> str (b'Python! ')

Príklad 2: Ako str () funguje pre bajty?

Ak encodinga errorsje zadaný parameter, prvý parameter, objekt , by mal byť objekt podobný bytes (bytes or bytearray).

Ak je objekt bajty alebo bytearray , str()interne sa volá bytes.decode(encoding, errors).

V opačnom prípade získa objekt bajtov do medzipamäte pred volaním decode()metódy.

 # bytes b = bytes('pythön', encoding='utf-8') print(str(b, encoding='ascii', errors='ignore')) 

Výkon

 pythn 

Tu znak 'ö'nemôže byť dekódovaný pomocou ASCII. Preto by malo dôjsť k chybe. Stanovili sme však errors ='ignore'. Preto Python ignoruje znak, ktorým sa nedá dekódovať str().

Zaujímavé články...