Python str ()

Funktio str () palauttaa annetun objektin merkkijonoversion.

Syntaksi str()on:

 str (objekti, koodaus = 'utf-8', virheet = 'tiukka')

str () Parametrit

str() Menetelmä kestää kolme parametrit:

  • object - objectjonka merkkijonoesitys on palautettava. Jos ei anneta, palauttaa tyhjän merkkijonon
  • koodaus - annetun objektin koodaus. UTF-8: n oletusasetukset, kun sitä ei toimiteta.
  • virheet - Vastaus dekoodauksen epäonnistumisen yhteydessä. Oletusarvo on 'strict'.

On kuusi tyyppiä errors:

  • tiukka - oletusvaste, joka aiheuttaa UnicodeDecodeErrorpoikkeuksen epäonnistumisesta
  • ohita - ohittaa koodaamattoman Unicoden tuloksesta
  • korvaa - korvaa koodaamattoman Unicoden kysymysmerkiksi
  • xmlcharrefreplace - lisää XML-merkkiviitteen koodaamattoman Unicoden sijaan
  • backslashreplace - lisää uNNNNvälilyöntisekvenssin koodaamattoman Unicoden sijaan
  • namereplace - lisää N(… )pakosarjan koodaamattoman Unicode-koodin sijaan

Palautusarvo str: stä ()

str()Menetelmä palauttaa merkkijono, jota pidetään epävirallinen tai hienosti tulostettava esitys antaa objektin.

Esimerkki 1: Muunna merkkijonoksi

Jos koodausta ja virheitä -parametria ei anneta, str()kutsuu sisäisesti __str__()objektin menetelmää.

Jos se ei löydä __str__()menetelmää, se kutsuu sen sijaan repr (obj).

 result = str(10) print(result)

Tuotos

 10 

Huomaa: Tulosmuuttuja sisältää merkkijonon.

Kokeile myös näitä komentoja Python-konsolissa.

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

Esimerkki 2: Kuinka str () toimii tavuilla?

Jos encodingja errorsparametri annetaan, ensimmäisen parametrin, objektin , tulisi olla tavua muistuttava objekti (tavut tai tavujärjestys).

Jos kohde on tavua tai bytearray , str()sisäisesti puhelut bytes.decode(encoding, errors).

Muussa tapauksessa se saa tavuobjektin puskuriin ennen decode()menetelmän kutsumista .

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

Tuotos

 pythn 

Tässä merkkiä 'ö'ei voida dekoodata ASCII: lla. Siksi sen pitäisi antaa virhe. Olemme kuitenkin asettaneet errors ='ignore'. Siksi Python jättää huomiotta merkin, jota ei voida dekoodata str().

Mielenkiintoisia artikkeleita...