Sunteți pe pagina 1din 33

Cap.

Manipularea sirurilor de caractere.


Bucle si operatori decizionali
Siruri de caractere

1. Manipularea sirurilor de caractere


- Introducere;
- Manipularea sirurilor de caractere

2. Lucrul cu operatori decizionali


- if;
- Operatori de comparare numerici. Operatori Booleani
- Operatori de comparare pentru siruri de caractere

3. Lucrul cu bucle
- for;
- while.
Copyright - InfoAcademy - 2017 2
Introducere - recapitulare

- Putem capta un sir de caractere de la tastatura, intr-o variabila;


- CNP = input("Introduceti CNP: ") .
Pentru a-l converti la numar folosim int(CNP)

- Putem scrie mai multe instructiuni pe aceeasi linie despartite de ';' ;


print ('Alina'); print ('viseaza! ')

- Putem da print la mai multe siruri, despartite de virgule sau o


combinatie de siruri si variabile  concatenare cu spatiu intre ele;
print ('Alina', 'viseaza!')

- Putem utiliza ghilimelele triple pentru a scrie si vizualiza un text pe mai


multe randuri
Copyright - InfoAcademy - 2017 3
Manipularea sirurilor de caractere

- Un sir (string) este o secventa de caractere, chiar daca include cifre;

- Sirul de caractere se pune intre ghilimele sau apostroafe;

- Pentru striguri '+' inseamna concatenare, '*' inseamna multiplicare;

- dir('string') – returneaza o lista cu metodele aplicabile stringurilor:


'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find',
'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit',
'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join',
'ljust', 'lower', 'lstrip', 'maketrans','partition', 'replace', 'rfind', 'rindex', 'rjust',
'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
'translate', 'upper', 'zfill'
Copyright - InfoAcademy - 2017 4
Manipularea sirurilor de caractere (continuare)

- Metoda de mapipulare: 'sir'.metoda() sau variabila.metoda();

- 'sir'.upper() 'sir'.lower();
- 'sir'.title(); 'sir'.capitalize();
- 'sir'.replace('subsir_vechi', 'subsir_nou');
- 'sir'.isdigit(); 'sir'.isnumeric(); 'sir'.isalpha();
- 'sir'.isspace();
- 'sir'.isupper();
- 'sir'.istitle();
- 'sir'.find('subsir‘[, poz_start, poz_sfarsit]); Exemplul 201
- 'sir'.split('subsir');
- 'sir'.startswith('subsir'); 'sir'.endswith('subsir');
Copyright - InfoAcademy - 26 5
Formatarea sirurilor de caractere

s - pentru string. String este formatul default si poate sa lipseasca;


b - pentru binary, numere in baza 2;
o - pentru octal, numere in baza 8;
x - pentru hexazecimal, numere in baza 16, litere mici;
X - pentru hexazecimal, numere in baza 16, litere mari;
d - pentru decimal, numere in baza 10;
n - similar cu decimal cu separatoare grupe de cifre;
e - pentru numere in notatie stiintifica, default precizie de 6 caractere;
f - pentru numere rationale, default 6 zecimale. Se poate seta numarul
dorit de zecimale;
% - multiplica numarul cu 100 si-l returneaza ca numar rational.
Exemplul 201
Copyright - InfoAcademy - 2017 6
Formatarea sirurilor de caractere (continuare)

- Putem sa folosim diferite expresii pentru formatarea stringurilor, astfel incat sa


obtinem informatiile in formatul dorit:

# pozitia 0 - 2 coincide cu pozitia din format incepand cu zero primul element


'{0}, {1}, {2}'.format ( 'x', 'y', 'z' )

# formatarea stringurilor, argumente cu nume:


'Produsul: {prod}, cantitate: {cant}, pret: {pret}'.format ( prod='cirese', cant=100 * 2, pret=5 )

# completeaza spatii pana la 20 de caractere si aliniaza stanga


"{:<20}".format ('stanga')
"{:>20}".format ('dreapta')
"{:^19}".format ('centrat')
Exemplul 201
Copyright - InfoAcademy - 2017 7
Formatarea sirurilor de caractere (continuare)

# centrarea si inlocuirea completarea cu caracterul *


"{:*^19}".format ('centrat')

# formatarea stringurilor - float cu nr de zecimale implicit sau setat de utilizator


'{: f}'.format ( 15 ) # nr de zecimale implicit
'{:.2f}'.format ( 15 ) # “ .2 “ face ca numarul de zecimale returnat sa fie 2

# formatarea stringurilor - baze de numeratie


"int: {0:d}; hex: {1:x}; oct: {2:o}; bin: {3:b}".format ( 100, 256, 64, 4 )

# formatarea stringurilor cu separator grupe de cifre:


'{: ,}'.format ( 35735735735 )

Exemplul 201
Copyright - InfoAcademy - 2017 8
Formatarea sirurilor de caractere (continuare)

# formatarea stringurilor, procente:

raspunsuri_corecte = 17
intrebari_total = 21
'Nota : {:.2%}'.format (float ( raspunsuri_corecte ) / intrebari_total )

# formatarea stringurilor, completarea cu zpatii sau zerouri:

'{:5d}'.format ( 15 ) # completarea cu spatii, in stanga, pana la lungimea de 5 caractere

'{:05d}'.format ( 15 ) # completarea cu zerouri, in stanga, pana la lungimea de 5


caractere

Exemplul 201
Copyright - InfoAcademy - 2017 9
Siruri de caractere

1. Manipularea sirurilor de caractere


- Introducere;
- Manipularea sirurilor de caractere

2. Lucrul cu operatori decizionali


- if;
- Operatori de comparare numerici. Operatori Booleani.
- Operatori de comparare pentru siruri de caractere

3. Lucrul cu bucle
- for;
- while.
Copyright - InfoAcademy - 2017 10
Operatori decizionali – if

if conditie1 :
expresie1 ( sau bloc de expresii)
elif conditie2:
expresie2
else:
expresie3 # conditii numerice, Boolean, comparare siruri

Operatorii de tip Boolean True, False :


if (True) : expresie4 # expresie4 va fi returnata de fiecare data

if (False) : expresie5 # nu returneaza nimic de fiecare data

Exemplul 202
Copyright - InfoAcademy - 2017 11
Operatori decizionali – if - continuare

- Identarea; # sintaxa

- if in if; # putem avea mai multe conditii if in if

- elif: # mai multe ramuri if – poate lipsi

- else: # default – poate lipsi

- if (x): # daca x != 0 are acelasi comportament ca True


# idem daca x este un string diferit de sirul vid

- logica conditiilor; # conditii care nu se vor executa niciodata


Copyright - InfoAcademy - 2017 12
Operatori folositi in conditiile numerice si pentru siruri de caractere

Operator Semnificatia Exemplu Rezultat


== Egal 7 == 7 True
!= Diferit 7 != 7 False
> Mai mare 7>7 False
>= Mai mare sau egal 7 >= 7 True
< Mai mic 7<7 False
<= Mai mic sau egal 7 <= 7 True

* Atentie, "=" este operator de atribuire de valori variabilelor


Copyright - InfoAcademy - 2017 13
Operatori decizionali – if - continuare

- Conditii multiple separate:

if conditie1 :
expresie1
if conditie2 :
expresie2

- Conditii multiple if in if :

if conditie1 :
if conditie2 :
expresie1
Copyright - InfoAcademy - 2017 expresie2 14
Operatori decizionali – if - continuare

- Conditii multiple simultane (and):

if conditie1 and conditie2:


expresie1
expresie2

- Conditii multiple simultane (or):

if conditie1 or conditie2:
expresie1
expresie2

Copyright - InfoAcademy - 2017 15


Operatori decizionali – if - continuare

- Operatorul (not) negarea conditiei (inversarea valorii de adevar):

if not conditie:
expresie

- Operatorul (is) compara doua stringuri (egalitate):

if 'sir1' is 'sir2' : # in loc de sir poate fi o variabila


expresie # cu is egalitatea se refera si la aceeasi zona de
# memorie ocupata
id('sir1') - returneaza portiunea(pozitia) de memorie ocupata
Copyright - InfoAcademy - 2017 16
Operatori decizionali – if - continuare

- Operatorul (in) testeaza existenta, incluziunea:

if 'sir1' in 'sir2' :
expresie

Exemplul 203

Copyright - InfoAcademy - 2017 17


x=7
CONDITIONARE
. Yes
X < 10 ? x=7

No
print ('Mic‘) if x < 10:
print ('Mic')

Yes if x >= 10:


X >= 10 ? print ('Mare')

No print ('Mare‘) print ('Gata')

print ('Gata‘)
Copyright - InfoAcademy - 2017 18
One way decision

Yes
X == 7 ?

No print ('Egal cu 7')

x=7

print ('Gata') if x == 7:
print ('Egal cu 7')

print ('Gata')

Copyright - InfoAcademy - 2017 19


Two way decision

x=7 x=7

No Yes if x < 10:


x < 10 ? print ('Mic')

print ('Mare') print ('Mic') else:


print ('Mare')

print ('Gata')
print ('Gata')
Copyright - InfoAcademy - 2017 20
Multi way decision
X=7
x=7
Yes

X < 50 print ('Mic') if x < 50:


print ('Mic‘)
No
Yes
elif x < 100:
X < 100 print ('Mediu')
print ('Mediu')
No
else:
print ('Mare') print ('Mare')

print ('Gata')
print ('Gata')

Copyright - InfoAcademy - 2017 21


Nested decision

Yes
X>0 x=7

No print ('Mai mare if x > 0:


ca zero') print ('Mai mare ca zero')

Yes if x < 10:


X < 10 print ('Mai mic decat zece')

print ('Mai mic


No
decat zece')
print ('Gata')

print ('Gata')
Copyright - InfoAcademy - 2017 22
Functii aplicabile sirurilor de caractere

Functia ord('x') # returneaza numarul asociat unui caracter utf8

Functia chr(99) # returneaza caracterul utf8 corespunzator numarului

Functia len('sir') # returneaza numarul de caractere al sirului

Copyright - InfoAcademy - 2017 23


Siruri de caractere

1. Manipularea sirurilor de caractere


- Introducere;
- Manipularea sirurilor de caractere

2. Lucrul cu operatori decizionali


- if;
- Operatori de comparare numerici. Operatori Booleani
- Operatori de comparare pentru siruri de caractere

3. Lucrul cu bucle
- while;
- for.
Copyright - InfoAcademy - 2017 24
Bucle – while

while (conditie) :
bloc de instructiuni

# se executa pana cand conditia devine falsa


# bucla infinita  conditie indeplinita mereu
# bucla infinita  conditie inlocuita cu while (True)
# bucla infinita  se poate opri cu break (cu o conditie pusa cu if)
# continue - rularea buclei de la inceput
# pass - nu afecteaza in niciun fel rularea

Exemplul 204
Copyright - InfoAcademy - 2017 25
Bucla while
x=7

No Yes x=7
x>0
while x > 0:
print (x) print (x)
x=x–1
x=x-1
print ('Gata')
print (x)
- valoarea variabilei se schimba la fiecare pas
print ('Gata') - iteratiile se executa cat timp conditia este adev
Copyright - InfoAcademy - 2017 26
Bucla while - bi
x=7

No Yes x=7
x>0
while x > 0:
print (x) print (x)
print ('Corect')
print ('Corect')
print ('Gata')

print ('Gata') Ce este gresit la aceasta bucla?


Copyright - InfoAcademy - 2017 27
Bucla while - alt
x=0

No Yes x=0
x>0
while x > 0:
print ( x ) print ( x )
x=x–1
x=x-1 print ( 'OK' )

print ( 'OK' ) Ce va returna aceasta bucla?


Copyright - InfoAcademy - 2017 28
Bucla while - break
x=7

No Yes x=7
x>0
while x > 0:
print ( x ) print ( x )
x=x–1
x=x-1 if x == 3:
break
break
print ( 'Gata' )

print ( 'Gata' )

Copyright - InfoAcademy - 2017 29


Bucla while - continue

No Yes
while True:
True? pret = input('Introdu pret: ')
if pret.isdigit():
print ( 'Ceva' ) print (int(pret) * 1.19)
continue
else:
print ('Eroare: numar invalid')
break
continue
print ('Gata')
print ( 'Gata' )
Copyright - InfoAcademy - 2017 30
Bucle – for

- for bucleaza prin diferite tipuri de obiecte (string, lista, tuplu, dictionar)

for variabila in 'sir' :


bloc de instructiuni

# "variabila" nu trebuie definita anterior


# si pentru for putem folosi break, continue si pass
# "variabila" este generic, poate fi orice denumire

Copyright - InfoAcademy - 2017 31


Bucla definita - for
x = 'Cuvant' x = 'Cuvant'

Yes Nu
for caracter in x:
Ai
terminat ?
print (caracter)
Urmatorul 'caracter'
print ('Gata')
C
print (caracter)
u
v
a
n
print ('Gata') t
Gata
Copyright - InfoAcademy - 2017 32
Bucle – for - continuare

for var in range(nr) :


print (var) # print numerele de la 0 la nr minus 1

for var in range(0, nr1, nr2) :


print (var) # print numerele de la 0 la nr1 incrementand nr2

for var in range(nr1, 0, nr3) :


print (var) # print numerele de la nr1 la nr2 decrem. Nr3

Exemplul 205
Copyright - InfoAcademy - 2017 33

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