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")sauocteti.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.