Sunteți pe pagina 1din 24

Șirurile de caractere în PYTHON

Tipul de date STRING


• Un string reprezintă orice tip de text inclus între ghilimele simple,
duble sau triple.

• De exemplu: s = 'Python' este același lucru cu s = "Python" sau s =


"""Python""".

• Între ghilimele simple şi duble nu există nici o diferenţă, însă


ghilimelele triple sunt folosite pentru a reprezenta texte care se
întind pe mai multe linii. Mai mult, şi ghilimelele triple pot fi simple
sau duble, fără nici o diferenţă între acestea.
Exemplu:
Deşi interpretatorului Python nu îi pasă ce tip de ghilimele folosim
pentru a defini stringul nostru, suntem obligaţi totuşi să încheiem
reprezentarea cu acelaşi tip de ghilimele cu care am început. Prin
urmare, nu sunt permise scrieri precum
s = 'text“

Caracterele sunt mai greu de reprezentat pentru un calculator, aşa


că pentru a-şi uşura munca, se foloseşte de un encoding. Un
encoding va indica o reprezentare a caracterelor într-un format mai
uşor de înţeles pentru calculator.

De exemplu, ASCII este un format de encoding mai vechi folosit


pentru a reprezenta 256 de caractere (printre care toate cele de pe
tastatura voastră). Acest format leagă orice caracter la un număr
întreg cuprins între 0 şi 255. Numărul 255 nu este întâmplător,
această reprezentare reuşind să reprezinte caractere în 8 biţi (2 **
8 = 256).
ASCII este totuşi un model de reprezentare destul de vechi şi depăşit de
multitudinea de caractere disponibile în zilele noastre. Din acest motiv
există multe alte sisteme de encoding.
În mod implicit, Python va folosi sistemul UTF-8 pentru a reprezenta
caracterele sale.

Putem accesa reprezentarea unui caracter folosind funcţia ord(caracter),


unde caracter trebuie să fie un string de lungime 1.

Inversul acestei funcţii este chr(numar), unde numar este un număr


întreg, iar rezultatul funcţiei este caracterul reprezentat de acel număr.
Operații cu STRINGRI
Un string Python poate fi privit drept o listă de caractere aflate într-o
anumită ordine. Astfel, putem selecta un substring al stringului nostru
folosind paranteze pătrate [ ].

Dacă vrem să selectăm un singur caracter, este suficient să specificăm în


parantezele pătrate poziţia caracterului în string.

Dacă vrem să selectăm mai multe caractere consecutive deodată, atunci


avem la dispoziţie "notaţia slice".
Notaţia slice permite selectarea unor caractere dintr-un interval
(selectarea unui substring). Pentru a specifica acest interval, în interiorul
parantezelor pătrate scriem poziţiile de început şi de final, despărţite
prin semnul : . Dacă poziţia de început este primul caracter al stringului
sau poziţia de final este ultimul caracter, atunci putem omite precizarea
acelei poziţii.
Operații cu STRINGRI
Exemplu: Observaţie: numărătoarea poziţiilor
(indecşilor) caracterelor din string începe
de la 0. Astfel, în exemplele prezentate,
pe prima poziţie se află caracterul P, pe a
doua poziţie caracterul y şi aşa mai
departe.

Atenţie: intervalul descris de notaţia slice


este închis la capătul din stânga şi deschis
la cel din dreapta. Cu alte cuvinte,
elementul de pe poziţia de start a notaţiei
va fi inclus în rezultat, iar caracterul indicat
de poziţia de final nu va fi inclus.
Observăm în exemplul, pentru cazul s[2:4]
au fost selectate caracterele t aflat pe
poziţia 2 şi h aflat pe poziţia 3, dar o aflat
pe poziţia 4 nu a fost inclus.
Operații cu STRINGRI
Până acum am prezentat o singură operaţie pe stringuri: operaţia de
selectare. În continuare vom prezenta alte operaţii utile atunci când
avem de-a face cu un astfel de tip de date.

Operaţiile aritmetice de adunare şi înmulţire sunt posibile asupra


stringurilor, dar au un efect poate neaşteptat.
După cum puteţi observa, adunarea a
două stringuri rezultă în concatenarea
acestora, iar înmulţirea unui string cu un
număr natural, va multiplica textul
stringului de atâtea ori cât indică numărul
ales.

Atenţie: pentru adunare, ambele


elemente trebuie să fie string, iar pentru
înmulţire este necesar un string şi un
număr întreg.
Operații cu STRINGRI

Pentru a verifica apartenenţa unui substring la un string, putem


folosi cuvântul cheie in.
Operații cu STRINGRI
Mai jos voi prezenta câteva metode utile în lucrul cu stringurile:

str(n) - realizează convertirea unui obiect care nu este string, într-un


string (de exemplu 1 devine "1"
min(s), max(s) - returnează litera minimă/maximă din string (atenţie,
toate literele mari vor fi considerate "mai mici" decât orice literă mică).
s.lower(), s.upper() - returnează o copie a stringului cu toate literele
mici sau cu toate literele mari
len(s) - returnează un număr corespunzător dimensiunii stringului
(numărul de caractere care îl alcătuiesc)
s.split(delimitator) - împarte stringul în bucăţi delimitate de
parametrul "delimitator". Rezultatul va fi o listă, iar delimitatorul trebuie
sa fie string
[ ] - slicing - extrage un subsir dintr-un sir.
lstrip() - elimina spațiile de la începutul șirului.
rstrip() - elimină spațiile de la sfârșitul șirului
Operații cu STRINGRI
 find() – găsește un subșir într-un șir și elimină poziția unde începe
subșirul
 count() - numară aparițiile unui subșir într-un șir
 replace() – înlocuiește un subșir cu un altul
 upper(), lower(), title(), capitalize() – înlocuiește un subșir cu un
altul
split() - împarte șirul în subșiruri, în funcție de parametrul lui split()
ord (caracter) - returnează codul Unicode al unui caracter
chr (numar) - returnează caracterul corespunzător codului Unicode
primit ca parametru

NOTĂ: Pentru mai multe detalii despre funcţiile şi metodele suportate


de stringuri, consultaţi documentaţia oficială, ca de exemplu:
https://www.w3schools.com/python/python_strings.asp
Formatarea TEXTULUI
O parte importantă în lucrul cu stringurile o reprezintă formatarea
acestora. Prin formatare vom înțelege posibilitatea de a crea un string în
mod dinamic folosind valori păstrate în variabile.

Prima şi cea mai simplă metodă de formatare o reprezintă concatenarea


stringurilor implicate folosind operaţia de adunare:

Observaţi convertirea variabilei ani folosind funcţia str(). Fără această


convertire, am primi eroare deoarece nu putem adăuga un string şi un
număr.
Formatarea TEXTULUI
O altă metodă de formatare o reprezintă folosirea caracterului %

%s indică faptul că pe acea pozitie se asteaptă un element de tip string,


iar %d indică prezenţa unui element de tip întreg.

Observaţi totuşi absenţa funcţiei de convertire a variabilei ani. Din


moment ce am specificat deja în interiorul formatării că ne aşteptăm la
un număr pentru poziţia aceea, Python va realiza singur conversia.
Totuşi ordinea parametrilor din paranteză contează.
Formatarea TEXTULUI
Formatarea TEXTULUI
A treia metodă de formatare a stringurilor este metoda format()

Observăm că nu a fost nevoie de convertirea variabilei ani şi nici de


specificarea unui tip de date pentru poziţiile în care vor urma să fie
introduse valorile variabilelor noastre. Cu toate acestea, ordinea
parametrilor încă este importantă ceea ce nu mereu ne convine.
Formatarea TEXTULUI
Din fericire, acoladele pot conţine informaţii despre parametrii. Astfel,
dacă punem un număr în interiorul acoladelor, atunci Python va asocia
acel număr cu poziţia parametrilor din metoda format (atenţie totuşi,
numărătoarea începe de la 0 şi se poate continua până la numărul
parametrilor - 1)

Mai mult, această metodă ne permite refolosirea parametrilor prin


repetarea unui index (numărul parametrului)
Formatarea TEXTULUI
Deja avem mai multă flexibilitate, dar încă nu e suficient. Ordinea
parametrilor este încă importantă. Pentru a rezolva şi acest ultim
inconvenient, putem scrie în locul numerelor dintre acolade, denumiri
pentru variabilele care vor fi înlocuite (denumirile acestea pot fi
diferite de numele variabilelor). În acest mod, poziţia parametrilor nu
va mai conta pentru că vor fi identificaţi prin acea denumire. La fel ca în
cazul indecşilor, şi această metodă ne permite să repetăm un anumit
parametru prin reutilizarea numelui său în string.
Formatarea TEXTULUI
Ultima metodă de formatare a fost adaugată în Python 3.6 şi presupune
adaugarea caracterului f înaintea şirului nostru de caractere, iar între acolade,
vom trece numele variabilelor pe care vrem să le includem în formatare (de
această dată, numele variabilelor din acolade trebuie să coincidă cu cel din
declarare).

Această metodă este interesantă deoarece tot ce este în interiorul acelor


acolade, va fi interpretat de Python. Astfel, putem avea expresii (operaţii
aritmetice, apeluri de funcţii etc) direct în interiorul formatării. Exemplu:
Exemplul Nr.1
Am mai folosit șirurile de caractere până acum. Se atribuie valorile
simplu, scriind textul între apostrofuri, ghilimele sau o combinație de
trei cu trei, pentru a scrie un text pe mai multe rânduri.
Exemplul Nr.2
Operatorul de adunare "+" are rolul de a alătura (concatena) două sau
mai multe șiruri de caractere.

Pentru două valori numerice, operatorul "*" reprezintă înmulțirea. În


cazul unor operanzi de tip str, acesta are rolul de a multiplica valoarea
(textul).
Exemplul Nr.3
Considerăm o variabilă s1 care reține șirul "caracter".
Indicele primului caracter este 0, iar ultimul 7, adică 8-1, unde 8 este
numărul de caractere conținute de obiect. Folosind un anumit indice și
operatorii "[" și "]" împreună, avem acces la caractere:
Exemplul Nr.4
Pentru a obține lungimea unui șir de caractere, vom folosi funcția
len(nume_variabilă).
Precizăm din nou că indicii pornesc de la 0 și se opresc la len()-1.
Exemplul Nr.5
Putem verifica dacă un caracter ori un subșir este prezent într-un șir de
caractere. Analizați operatorii binari in și grupul not in în programul
următor:
EXERSEAZĂ

Se citeste un sir de caractere care reprezinta CNP-ul unei persoane. Să se verifice


corectitudinea lui:numărul de caractere să fie 13 și toate caracterele să fie cifre.

S-ar putea să vă placă și

  • Python Carte
    Python Carte
    Document27 pagini
    Python Carte
    Alexandru Cobzaleu
    100% (1)
  • Pseudocod
    Pseudocod
    Document5 pagini
    Pseudocod
    Marinescu Costin Matei
    100% (1)
  • Siruri Pointeri
    Siruri Pointeri
    Document8 pagini
    Siruri Pointeri
    dianaaionela
    Încă nu există evaluări
  • Python
    Python
    Document25 pagini
    Python
    Bogdan Blue
    Încă nu există evaluări
  • Siruri de Caractere
    Siruri de Caractere
    Document17 pagini
    Siruri de Caractere
    Anonim Sporgi
    Încă nu există evaluări
  • Șiruri de Caractere
    Șiruri de Caractere
    Document24 pagini
    Șiruri de Caractere
    Otello Postelnicu
    Încă nu există evaluări
  • C
    C
    Document22 pagini
    C
    Tudor Ana
    Încă nu există evaluări
  • Stiva
    Stiva
    Document7 pagini
    Stiva
    Radu Alexandru
    Încă nu există evaluări
  • 1980521.evaluare Finală 9
    1980521.evaluare Finală 9
    Document2 pagini
    1980521.evaluare Finală 9
    Maxim Durnea
    Încă nu există evaluări
  • Siruri Probleme
    Siruri Probleme
    Document17 pagini
    Siruri Probleme
    Mihaela Lupeş
    Încă nu există evaluări
  • 5.pointeri Siruri de Caractere CL 10
    5.pointeri Siruri de Caractere CL 10
    Document10 pagini
    5.pointeri Siruri de Caractere CL 10
    Alex Fechet
    Încă nu există evaluări
  • BPC Stringuri
    BPC Stringuri
    Document46 pagini
    BPC Stringuri
    Vitalie Ambrosi
    Încă nu există evaluări
  • Java Ocp
    Java Ocp
    Document11 pagini
    Java Ocp
    Robert Valeriu
    Încă nu există evaluări
  • Siruri Teorie
    Siruri Teorie
    Document2 pagini
    Siruri Teorie
    Cristian Sovaila
    Încă nu există evaluări
  • Functii
    Functii
    Document11 pagini
    Functii
    preda andrei
    Încă nu există evaluări
  • Ionic Atestat
    Ionic Atestat
    Document21 pagini
    Ionic Atestat
    Ioana. Rusu
    Încă nu există evaluări
  • Liste Python
    Liste Python
    Document16 pagini
    Liste Python
    preda andrei
    Încă nu există evaluări
  • Stringuri
    Stringuri
    Document18 pagini
    Stringuri
    Русские Трейлеры
    Încă nu există evaluări
  • Tablouri String
    Tablouri String
    Document8 pagini
    Tablouri String
    CrăciunOvidiu
    Încă nu există evaluări
  • Curs FP 9
    Curs FP 9
    Document5 pagini
    Curs FP 9
    Ramona Bajan
    Încă nu există evaluări
  • Curs04 Java
    Curs04 Java
    Document44 pagini
    Curs04 Java
    dani10gh
    Încă nu există evaluări
  • Atestatdenisifrim
    Atestatdenisifrim
    Document31 pagini
    Atestatdenisifrim
    api-610041661
    Încă nu există evaluări
  • Siruri Teorie
    Siruri Teorie
    Document16 pagini
    Siruri Teorie
    ppprof
    Încă nu există evaluări
  • Laborator 5 Sava Victoria
    Laborator 5 Sava Victoria
    Document8 pagini
    Laborator 5 Sava Victoria
    VictoriaSava
    Încă nu există evaluări
  • Lab 10
    Lab 10
    Document15 pagini
    Lab 10
    danyaly
    Încă nu există evaluări
  • Tipuri de Date 2
    Tipuri de Date 2
    Document10 pagini
    Tipuri de Date 2
    Nikita C
    Încă nu există evaluări
  • L4si5-Tipuri de Date
    L4si5-Tipuri de Date
    Document7 pagini
    L4si5-Tipuri de Date
    Gheorghe Morosan
    Încă nu există evaluări
  • Lectia4 PDF
    Lectia4 PDF
    Document17 pagini
    Lectia4 PDF
    Calin Luchian
    Încă nu există evaluări
  • Functii
    Functii
    Document4 pagini
    Functii
    Fanica Ulidescu
    Încă nu există evaluări
  • Curs 4 Fundamente de Programare
    Curs 4 Fundamente de Programare
    Document33 pagini
    Curs 4 Fundamente de Programare
    Edi Tanasa
    Încă nu există evaluări
  • Tipuri de Date in Pascal
    Tipuri de Date in Pascal
    Document11 pagini
    Tipuri de Date in Pascal
    Alina Plesa
    Încă nu există evaluări
  • L9
    L9
    Document1 pagină
    L9
    Ady Cristina
    Încă nu există evaluări
  • Informații Utile - Partea I
    Informații Utile - Partea I
    Document28 pagini
    Informații Utile - Partea I
    alexistudor00
    Încă nu există evaluări
  • Tema 1
    Tema 1
    Document3 pagini
    Tema 1
    Mitu Andrei
    Încă nu există evaluări
  • Laborator Is 4
    Laborator Is 4
    Document14 pagini
    Laborator Is 4
    Victor C. Ionuț
    Încă nu există evaluări
  • Sir de Caractere
    Sir de Caractere
    Document12 pagini
    Sir de Caractere
    Inga Gurmeza
    0% (2)
  • C# Siruri
    C# Siruri
    Document5 pagini
    C# Siruri
    Ştefan Şălaru
    100% (1)
  • Siruri de Caractrere - Proiect Info
    Siruri de Caractrere - Proiect Info
    Document17 pagini
    Siruri de Caractrere - Proiect Info
    Ioana Paucean
    Încă nu există evaluări
  • Teorie Info
    Teorie Info
    Document6 pagini
    Teorie Info
    Mihai Boanta
    Încă nu există evaluări
  • 4 - Tipul String
    4 - Tipul String
    Document5 pagini
    4 - Tipul String
    Caesar8
    Încă nu există evaluări
  • Şiruri de Caractere
    Şiruri de Caractere
    Document25 pagini
    Şiruri de Caractere
    georgefrumuselu007
    100% (1)
  • Siruri de Caractere
    Siruri de Caractere
    Document26 pagini
    Siruri de Caractere
    Gîlcă Cristina
    Încă nu există evaluări
  • Proiect Info
    Proiect Info
    Document9 pagini
    Proiect Info
    Arina Balan
    Încă nu există evaluări
  • Introducere Pascal
    Introducere Pascal
    Document27 pagini
    Introducere Pascal
    Daniel Popa
    Încă nu există evaluări
  • Ll4Tipuri Liste18
    Ll4Tipuri Liste18
    Document34 pagini
    Ll4Tipuri Liste18
    andy secrieru
    Încă nu există evaluări
  • Structura Unui Program, Variabile Instructiuni (Citiri, Scrieri)
    Structura Unui Program, Variabile Instructiuni (Citiri, Scrieri)
    Document18 pagini
    Structura Unui Program, Variabile Instructiuni (Citiri, Scrieri)
    gorhds
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document31 pagini
    Lab 1
    ciumac andrian
    Încă nu există evaluări
  • Siruri de Caractere Grecu Cristian
    Siruri de Caractere Grecu Cristian
    Document19 pagini
    Siruri de Caractere Grecu Cristian
    Cristianosboss
    Încă nu există evaluări
  • Siruri de Caractere
    Siruri de Caractere
    Document12 pagini
    Siruri de Caractere
    Cristi Conache
    Încă nu există evaluări
  • Algoritmi Si Programare
    Algoritmi Si Programare
    Document11 pagini
    Algoritmi Si Programare
    misuii
    Încă nu există evaluări
  • Lab 5 Programarea Calculatoarelor
    Lab 5 Programarea Calculatoarelor
    Document7 pagini
    Lab 5 Programarea Calculatoarelor
    Petru Voloceai
    Încă nu există evaluări
  • 10 Siruri Si Expresii Regulate
    10 Siruri Si Expresii Regulate
    Document8 pagini
    10 Siruri Si Expresii Regulate
    AlexandraGabriela
    Încă nu există evaluări
  • Word
    Word
    Document14 pagini
    Word
    JOZSEF MOLNAR
    Încă nu există evaluări
  • Eseu Teza
    Eseu Teza
    Document1 pagină
    Eseu Teza
    Maxim Durnea
    Încă nu există evaluări
  • Final
    Final
    Document3 pagini
    Final
    Maxim Durnea
    Încă nu există evaluări
  • Rezervatia Naturala
    Rezervatia Naturala
    Document1 pagină
    Rezervatia Naturala
    Maxim Durnea
    Încă nu există evaluări
  • Romana
    Romana
    Document2 pagini
    Romana
    Maxim Durnea
    Încă nu există evaluări
  • Eseu 2
    Eseu 2
    Document1 pagină
    Eseu 2
    Maxim Durnea
    Încă nu există evaluări
  • Tatra
    Tatra
    Document2 pagini
    Tatra
    Maxim Durnea
    Încă nu există evaluări
  • Lecţia 1 - Erori În Calculul Numeric
    Lecţia 1 - Erori În Calculul Numeric
    Document15 pagini
    Lecţia 1 - Erori În Calculul Numeric
    Maxim Durnea
    Încă nu există evaluări
  • Eseu 1
    Eseu 1
    Document1 pagină
    Eseu 1
    Maxim Durnea
    Încă nu există evaluări
  • Eseu 2
    Eseu 2
    Document1 pagină
    Eseu 2
    Maxim Durnea
    Încă nu există evaluări
  • Rezervația Naturală "Snowdonia" Snowdonia Este Considerată Una Dintre Primele Rezervații Naturale Din Anglia Și Țara Galilor. Marea Britanie
    Rezervația Naturală "Snowdonia" Snowdonia Este Considerată Una Dintre Primele Rezervații Naturale Din Anglia Și Țara Galilor. Marea Britanie
    Document1 pagină
    Rezervația Naturală "Snowdonia" Snowdonia Este Considerată Una Dintre Primele Rezervații Naturale Din Anglia Și Țara Galilor. Marea Britanie
    Maxim Durnea
    Încă nu există evaluări
  • Python
    Python
    Document17 pagini
    Python
    Maxim Durnea
    Încă nu există evaluări
  • Test La Informatica
    Test La Informatica
    Document2 pagini
    Test La Informatica
    Maxim Durnea
    Încă nu există evaluări