Fundamentele programării (V) - Python

Am văzut în cadrul episodului anterior cum pot lua programele decizii în funcție de circumstanțe, cum se execută o instrucțiune sau alta în funcție de anumite condiții. În cadrul acestui episod vom continua prezentarea modului în care sunt luate decizii.

Mai multe variante

Până acum doream să se execute anumite instrucțiuni dacă o anumită condiție era adevărată și altele dacă era falsă. Dar, ce am face dacă nu avem doar două variante, ci mai multe.

Să ne imaginăm o situție în care dorim să scriem cifrele folosind litere. Avem o variabilă  c care ar trebui să conțină o cifră. Dacă valoarea este  1, ar trebui să scriem string-ul  "unu"; dacă valoarea este  2, ar trebui să scriem  "doi" și așa mai departe. Variabila conține numere, deci probabil nu va avea neapărat valori cuprinse între zero și nouă; în cazul în care valoarea nu este o cifră, am vrea să scriem textul  "nu este o cifră".

Cea mai simplă variantă este să comparăm, pe rând, valoarea variabilei  c cu fiecare cifră și să scriem mesajul corespunzător în cazul în care identificăm cifra; începem comparând cu zero; dacă am găsit valoarea scriem textul  "zero"; dacă nu am găsit-o încercăm să comparăm cu unu și așa mai departe; dacă am ajuns la nouă și tot nu am găsit cifra, putem concluziona că nu avem o cifră. Codul ar arăta astfel:

Am folosit blocuri de instrucțiuni chiar dacă avem o singură instrucțiune și nu arată prea bine... Avem aici o succesiune  if else if else if else, etc. În situația în care pe ramura  else avem doar un  if, putem să înlocuim secvența else: if cu elif, o instrucțiune mai simplă. Se poate vedea că arată mult mai bine:

O scurtătură

De multe ori dorim să verificăm o anumită condiție booleană și, în funcție de rezultatul verificării, să atribuim unei variabilă o valoare sau alta. De exemplu, am putea avea o variabilă  nr care conține numere întregi și am dori să atribuim unei variabile  s care conține string-uri valoarea  "negativ" dacă numărul respectiv este mai mic decât zero și valoarea  "nenegativ" în caz contrar (numărul este mai mare sau egal cu zero).

Putem face asta simplu:

Totuși, situația este atât de frecventă încât limbajele oferă o prescurtare. În alte limbaje această prescurtare este vin sub forma unui operator, însă în Python, este o expresie condițională, scrisă un pic diferit. Următoarea instrucțiune este echivalentă cu secvența anterioară:

După cum puteți observa, este un  if, scris mai simplu, care chiar are sens citit în limba engleză. Tradus, ar suna cam așa: variabila  s are valoarea "negativ" dacă n este mai mic decât , în caz contrar va avea valoarea nenegativ.

Va urma

În următorul episod vom introduce conceptul de funcție. Vom vedea cum putem grupa instrucțiunile și cum putea evita să scriem același lucru de mai multe ori.