Bucle si instructiuni conditionale
Introducere
(Lectia finala inainte de a interactiona cu utilizatorii. Nu-i asa ca esti nerabdator?)
Imagineaza-ti ca ai avea nevoie ca un program sa execute ceva de 20 de ori. Ce ai face? Ai copia si atasa codul de 20 de ori si ai avea un program practic necitibil, ca sa nu mentionez incetineala si inutilitatea. Sau i-ai putea spune computerului sa repete o portiune de cod intre punctul A si punctul B pana cand trebuie sa se opreasca. Aceasta este o bucla.
Bucla 'while'
Urmatoarele sunt exemple de bucle de tip 'while':
a = 0
while a < 10:
a = a + 1
print a
Cum functioneaza acest program? Iata „traducerea” sa in romana:
'a' este 0
Cat timp 'a' este mai mic decat 10, executa urmatoarele:
Mareste valoarea 'a' cu 1.
Afiseaza valoarea 'a'.
Ce face? Sa vedem ce ar 'gandi' computerul cand este in bucla 'while':
#UITA-TE REPEDE PE URMATORUL COD
#(Arata lung, dar este foarte simplu)
Este'a' mai mic decat 10? DA (este 0)
Mareste 'a' cu o unitate (este 1)
Afiseaza valoarea lui 'a' (1)
Este'a' mai mic decat 10? DA (este 1)
Mareste 'a' cu o unitate (este 2)
Afiseaza valoarea lui 'a' (2)
Este'a' mai mic decat 10? DA (este 2)
Mareste 'a' cu o unitate (este 3)
Afiseaza valoarea lui 'a' (3)
Este'a' mai mic decat 10? DA (este 3)
Mareste 'a' cu o unitate (este 4)
Afiseaza valoarea lui 'a' (4)
Este'a' mai mic decat 10? DA (este 4)
Mareste 'a' cu o unitate (este 5)
Afiseaza valoarea lui 'a' (5)
Este'a' mai mic decat 10? DA (este 5)
Mareste 'a' cu o unitate (este 6)
Afiseaza valoarea lui 'a' (6)
Este'a' mai mic decat 10? DA (este 6)
Mareste 'a' cu o unitate (este 7)
Afiseaza valoarea lui 'a' (7)
Este'a' mai mic decat 10? DA (este 7)
Mareste 'a' cu o unitate (este 8)
Afiseaza valoarea lui 'a' (8)
Este'a' mai mic decat 10? DA (este 8)
Mareste 'a' cu o unitate (este 9)
Afiseaza valoarea lui 'a' (9)
Este'a' mai mic decat 10? DA (este 9)
Mareste 'a' cu o unitate (este 10)
Afiseaza valoarea lui 'a' (10)
Este'a' mai mic decat 10? NU (este 10, deci nu e mai mic decat 10)
Iesi din bucla
Nu a mai ramas cod de executat, deci iesi din program
Pe scurt, incearca sa gandesti astfel atunci cand scrii bucle 'while':
while {conditie pentru care bucla continua}:
{codul din interiorul buclei}
{indenteaza-l, de obicei cu 4 spatii}
{codul de aici nu face parte din bucla}
{deoarece nu este indentat }
Iata si un alt exemplu:
x = 10
while x != 0:
print x
x = x - 1
print "wow, am decrementat variabila x si acum are valoarea", x
print "Am iesit din bucla."
Aminteste-ti, pentru a crea un program, deschizi IDLE, accesezi File > New Window, tastezi programul in noua fereastra, apoi apesi F5 pentru a rula.
Expresii Booleene
Ce scrii in zona marcata {conditie pentru care bucla continua}? Raspunsul este o expresie booleana.
Poftim? Un concept uitat pentru non-matematicienii de aici. Nu conteaza, o expresie booleana semnifica doar o intrebare la care se poate raspunde cu TRUE (adevarat) sau FALSE (fals). De exemplu, daca vrei sa spui ca varsta ta este aceeasi cu a persoanei de langa tine, ai scrie:
Varsta mea == varsta persoanei de langa mine
Si afirmatia ar fi TRUE. Daca ai fi mai tanar decat respectiva persoana, ai spune:
Varsta mea < varsta persoanei de langa mine
Si afirmatia ar fi TRUE. Daca tu ai fi spus urmatoarele si persoana de langa tine ar fi mai tanara decat tine:
Varsta mea < varsta persoanei de langa mine
Afirmatia ar fi FALSE – adevarul este exact contrariul. Iata cum gandeste o bucla – daca expresia este true, continua. Daca este false, nu mai continua. Tinand cont de aceasta, sa privim operatorii (simboluri care reprezinta o actiune) care sunt implicati in expresii booleene:
Operatori booleeni
< |
mai mic |
<= |
mai mic sau egal cu |
> |
mai mare |
>= |
mai mare sau egal cu |
!= |
nu este egal cu |
<> |
nu este egal cu (alternativ) |
== |
egal cu |
Nu confunda '=' cu '=='. Operatorul '=' efectueaza o atribuire (obiectul din stanga ia valoarea obiectului din dreapta), in timp ce operatorul '==' verifica daca obiectul din stanga este egal cu cel din dreapta si returneaza true or false.
|