Fundamentele programării (XV) - Python

Elementele unui șir pot avea orice tip; nu ne împiedică nimic să facem în așa fel ca aceste elemente să fie, la rândul lor, șiruri.

Pentru a accesa primul șir din șirul nostru de șiruri am scrie a[0]; a[0] este un șir. Nu este greu să ne dăm seama că pentru a accesa primul element al șirului  a[0] va trebui să scriem  a[0][0].

Dar,  a[0] nu conține deocamdată nimic. Să presupunem că el ar trebui să fie un șir format din 10 numere întregi. Pentru a crea acest șir, am putea scrie:

De-abia acum putem lucra cu elemente de genul a[0][0].

Matrice

Cel mai simplu șir de șiruri este matricea. Aceasta poate fi privită ca fiind o grilă cu un anumit număr de linii și un anumit număr de coloane.

Fiecare linie este un șir (cu un număr de elemente egal cu numărul coloanelor), iar matricea este un șir de linii. Un exemplu este:

Avem o matrice cu trei linii și patru coloane; dacă dorim să creăm matricea element cu element, am putea scrie următorul cod:

Am definit un șir format din trei elemente. Primul element este șirul  [1, 2, 3, 4], al doilea este șirul  [5, 6, 7, 8], iar al treilea este șirul  [9, 10, 11, 12].

Parcurgerea matricelor

Putem parcurge matricele aproape la fel cum parcurgem șirurile. Le traversăm linie cu linie și apoi, dacă dorim, putem traversa fiecare linie. Este suficient să avem două bucle imbricate. Următoarea secvență afișează elementele, câte unul pe o linie. Nu va arăta ca o matrice, dar acest aspect nu este important.

Putem încerca și folosind o varianta mai elegantă:

Tabla înmulțirii

În episodul X am văzut cum putem afișa tabla înmulțirii. Dar, este mai natural ca o astfel de tablă să fie păstrată într-o matrice. Am putea crea destul de simplu o astfel de matrice astfel:

Funcția append  va adăuga la sfârșitul listei elementul dorit. Astfel, la linia 5 vom adăuga elementul  (i + 1) * (j + 1) listei  linie , ceea ce înseamnă că la prima parcurgere, cand i  va avea valoarea  , șirul linie va arăta ceva de genul:  linie = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. La fel, pe ultima linie, îi vom adăuga tablei noastre valoriile calculate anterior folosind funcția append .

Avem  (i + 1) * (j + 1) și nu  i * j deoarece în șiruri (deci și în matrice) numerotarea începe de la 0, nu de la 1, iar în tabla înmulțirii avem nevoie de numerele de la 1 la 10, nu de la 0 la 9.

Putem scrie acum și o versiune mai simplă a afișării tablei:

Va urma

Șirurile sunt foarte utile, dar utilizarea lor incorectă poate duce la greșeli relativ greu de detectat. În următorul episod vom prezenta câteva "capcane" care ar trebui evitate.