str() în Python

Tipul textelor (șiruri de caractere); str() transformă orice valoare în text.

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

Ce face str()

str este tipul textelor. Un șir se scrie între ghilimele simple sau duble, iar pe mai multe rânduri între ghilimele triple. Textele sunt Unicode, deci diacriticele și emoji funcționează direct.

str(x) returnează varianta „pentru oameni” a oricărei valori: numere, liste, obiecte. Cu encoding, transformă octeții (bytes) în text, la fel ca bytes.decode().

Șirurile sunt imutabile: metodele precum upper() sau replace() returnează un text nou, nu îl modifică pe cel vechi.

Parametri

Parametru Descriere
object Valoarea de transformat în text.
encoding Opțional. Codificarea, când object este bytes.
errors Opțional. Ce se face cu octeții invalizi: 'strict', 'ignore', 'replace'.

Ce returnează

Un șir de caractere nou.

Exemple

Exemplul 1: Transformarea în text

print(str(42) + " de ani")
print(str(3.5), str(True), str(None))
print(str([1, 2, 3]))
print(len(str(2 ** 100)), "cifre")

Rezultat

42 de ani
3.5 True None
[1, 2, 3]
31 cifre

Exemplul 2: Ghilimele și texte pe mai multe rânduri

a = 'Textul „citat” cu ghilimele românești'
b = "It's ok"
c = '''Rândul 1
Rândul 2'''
print(a)
print(b)
print(c)

Rezultat

Textul „citat” cu ghilimele românești
It's ok
Rândul 1
Rândul 2

Exemplul 3: Din bytes în text

octeti = "Brașov".encode("utf-8")
print(octeti)
print(str(octeti, "utf-8"))
print(str(octeti))

Rezultat

b'Bra\xc8\x99ov'
Brașov
b'Bra\xc8\x99ov'

Greșeli frecvente

  • Apelezi str(octeti) fără codificare și obții textul "b'...'", nu conținutul. Dă codificarea: str(octeti, "utf-8") sau octeti.decode().
  • Încerci să schimbi o literă: text[0] = "A" dă TypeError. Construiește un text nou.

Comenzi înrudite

  • f-string (f"..."): Șiruri de caractere în care pui direct variabile și expresii între acolade.
  • repr() și ascii(): Returnează reprezentarea „tehnică” a unei valori, utilă la depanare; ascii() o face doar cu caractere ASCII.
  • str.format() și str.format_map(): Completează un șablon de text cu valori puse între acolade.
  • str.encode() și bytes.decode(): Transformă textul în octeți (encode) și octeții înapoi în text (decode), după o codificare.
  • int(): Tipul numerelor întregi; int() transformă un text sau un număr zecimal în număr întreg.