Formatarea sirurilor de caractere si operatii cu siruri de caractere

postat acum un an de Stefanescu Mihai in categorie Python

Sirurile de caractere este unul dintre cele mai populare tipuri de date din python. Putem crea un sir de caractere (string) pur si simplu punandu-l intre ghilimele sau apostroafe (in python “ si ‘ sunt tratate la fel).

variabila1 = 'Salut www.invata-programare.ro!'
varariabila2 = "Salut Invata-Programare!"

Accesarea valorilor din siruri de caractere

Pentru a accesa substring-uri (portiuni din siruri de caractere) va trebui sa sa folosim parantezele patrate pentru sliceing:

variabila1 = 'Salut www.invata-programare.ro!'
varariabila2 = "Salut Invata-Programare!"
print "variabila1[0]: ", variabila1[0]
print "variabila2[1:5]: ", variabila2[1:5]

Codul de mai sus va avea urmatorul rezultat:

variabila1[0]: S
variabila2[1:5]: alut

Update-ul unui string

Poti face “update” unui sir de caractere re-asignandu-i alta valoare. Aceasta noua valoare poate fi scris in continuarea celei vechi sau o poate inlocui pe cea veche.

variabila1 = 'Salut'
print "Noul sir de caractere: ", variabila1 + ' www.invata-programare.ro'

Acest cod va avea rezultatul:

Noul sir de caractere: Salut www.invata-programare.ro

Operatori de formatare a stringurilor

Python ne permite sa formatam sirurile de caractere folosindu-ne de operatorul %. Acest operator se aplica numai in cazul sirurilor de caractere si este similar cu functia printf din C (si din limbajele ce fac parte din aceasta familie).

print "Salut! Numele meu este %s si am %d ani!" % ('Stefanescu Mihai', 23) 

Iata o lista cu toate symbolurile ce pot fi folosite ina cest mod:

Simbol

Reprezinta

%c

Un caracter

%s

Un sir de caractere

%i

Numar intreg

%d

Numar zecimal

%u

Numar intreg mai mare de 0

%o

Numar intreg octal

%x

Numar intreg hexazecimal

%X

Numar intreg hexazecimal

%e

Notare exponentiala

%E

Notare exponentiala

%f

Float

%g

Similar cu %f si %e

%G

Similar cu %f si %E

Ghilimele triple

Ghilimelele triple in Python ne ajuta la scrierea unui sire de caractere ce se intinde pe mai multe randuri.

 

string_mare = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print string_mare

Siruri de carcatere unicode

In mod normal sirurile de carctere din Python sunt stocate ca si ASCII 8bits, in timp ce sirurile de caractere unicode sunt stocate in 16-bit Unicode. Acest unicode ne permite sa stocam o gama mai larga de caractere, inclusiv caractere speciale (diacritice).

print u'Salut, comunitatea www.invata-programare.ro!'

 

Sunt un tanar programator din Bucuresti ce lucreaza in PHP/Mysql (MySqli/PDO), Laravel, CodeIgniter, MySQL, PostgreSQL, Wordpress, HTML5/CSS3, Sass, Photoshop si multe altele.
Google+ Community Facebook Group