Home » Articole » RO » Afaceri » Știința datelor (Data Science) » Știința datelor: Imagini de memorie în lucrul cu limbajul de programare Python

Știința datelor: Imagini de memorie în lucrul cu limbajul de programare Python

Acum, că am vorbit despre cele trei tipuri importante de variabile atomice, să luăm în considerare întrebarea unde se găsesc. S-ar putea să sune ca o întrebare ciudată. Nu sunt „în” celula Jupyter Notebook în care au fost tastate?

De fapt, nu.

Codul în sine este doar un mijloc pentru atingerea unui scop. Scopul codului este de a citi sau scrie ceea ce este în memorie.

Memoria este partea computerului în care sunt stocate variabilele și valorile lor. Pentru a folosi terminologia capitolului 3, memoria este locul în care trăiește mediul. Este invizibil pentru programator, dar este, de asemenea, foarte mult acolo. Cel mai important truc pentru a învăța cum să scrieți codul corect este să vă puteți aminti cum arată memoria în orice moment. Codul pe care trebuie să-l scrieți este o consecință firească a acestui fapt.

La început este mai ușor cu imaginile, așa că le vom desena pe multe din ele. Imaginile de memorie vor avea un format foarte specific, iar acest lucru este crucial: nu fiți creativi cu modul în care sunt etichetate lucrurile sau unde sunt desenate lucrurile. Pentru ca să funcționeze codul dvs., trebuie să aveți această imagine exact corectă. Nu este artă; este știință.

Imaginile noastre ale memoriei vor fi întotdeauna împărțite în exact două „zone”, una în stânga și una în dreapta, etichetate după cum urmează:

Știința datelor - Imagini de memorie

Scrierea în memorie

Când creăm variabile atomice într-o celulă Code, precum:

pin_count = 844

username = ‘Bekka Palmer’

fiecare este pusă pe partea stângă a diagramei ca o casetă cu nume. Numele casetei este numele variabilei, iar elementul din casetă este valoarea acesteia.

Știința datelor - Imagini de memorieNu contează ce casete sunt mai mari sau mai mici pe pagină, doar că fiecare nume se asociază cu caseta corespunzătoare și nu se încurcă. Ca bonus, am colorat diferit casetele, indicând faptul că pin_count (int) este un alt tip decât numele de utilizator (str). (1)

Crearea mai multor variabile adaugă doar mai multe casete cu nume:

avg_num_impressions = 1739.3 board_name = “Things to Make”

 

Știința datelor - Imagini de memorieAm amestecat în mod deliberat ordinea casetelor. Python nu oferă nicio garanție cu privire la „ordinea” în care va stoca variabilele. Garanțiile Python sunt doar că va stoca în mod constant un nume, o valoare și un tip pentru fiecare variabilă.

Când schimbăm valoarea unei variabile (mai degrabă decât să creăm una nouă), valoarea din caseta corespunzătoare se actualizează:

avg_num_impressions = 2000.97

pin_count = 845

another_board = ‘Pink!’

Știința datelor - Imagini de memorie

Rețineți că valoarea anterioară din casetă este complet ștearsă și nu există absolut nicio modalitate de a o recupera vreodată. De fapt, nu există nicio modalitate de a ști că a existat chiar o valoare anterioară diferită de cea actuală. Cu excepția cazului în care sunt organizate în mod specific, programele de computer țin doar evidența prezentului, nu a trecutului.

Un alt aspect: spre deosebire de unele limbaje de programare (așa-numitele limbaje „puternic tipizate”, precum Java sau C++), chiar și tipul valorii pe care o deține o variabilă se poate schimba dacă doriți. Chiar dacă următorul exemplu nu are prea mult sens, să presupunem că am scris acest cod în continuare:

pin_count = 999.635

username =11

Acest lucru face ca nu numai conținutul casetelor să se schimbe, ci chiar și culorile acestora. Variabila username a fost acum un moment, dar acum este int.

Știința datelor - Imagini de memorie

Citirea din memorie

„Citirea din memorie” înseamnă doar referirea la o variabilă pentru a-i recupera valoarea. Până în prezent, nu știm cum să facem cu excepția tipăririi:

print(“The {} board has {} pins.”.format(another_board,

pin_count))

I The Pink! board has 999.635 pins.

Important este că imaginea de memorie este (doar) înregistrarea curentă și fiabilă a aspectului memoriei în orice punct al unui program. Gândiți-vă la asta ca reflectând un instantaneu în timp: imediat după executarea unei linii de cod – și chiar înainte de următoarea – putem consulta imaginea pentru a obține valoarea fiecărei variabile. Exact asta face, practic, Python.

Subliniez acest punct, deoarece am văzut mulți studenți care privesc codul complicat și încearcă să „gândească” ce valoare va avea fiecare variabilă pe măsură ce rulează. Este greu de făcut cdoar cu câteva linii. Pentru a ține evidența a ceea ce s-a schimbat în ceea ce s-a schimbat și când, trebuie să păstrați cu adevărat o listă actualizată a valorii fiecărei variabile pe măsură ce programul se execută … ceea ce este de fapt exact ceea ce este imaginea de memorie.

Deci, dacă încercați să vă dați seama „ce va ieși din acest program dacă imprim variabila odometer imediat după linia 12?” nu încercați să priviți codul și să-i reconstruiți comportamentul de la zero. În schimb, desenați o imagine de memorie, actualizați-o în mod corespunzător în timp ce parcurgeți fiecare linie de cod, apoi uitați-vă la ea pentru răspuns.

Sfat

Apropo, investiția într-o tablă albă mică și câteva markere este o modalitate excelentă de a vă ajuta să învățați programarea. Sunt perfecte pentru desenarea și actualizarea imaginilor de memorie pe măsură ce evoluează.

Notă

(1) Un alt detaliu minuscul pe care l-ați putea observa: chiar dacă codul nostru avea ghilimele simple pentru a delimita numele Bekka Palmer, am pus ghilimele duble în caseta din imaginea de memorie. Acest lucru subliniază faptul că, indiferent de modul în care creați un șir în cod – indiferent dacă este vorba de ghilimele simple sau duble – „lucrul” care se scrie în memorie este același. De fapt, cele stocate sunt de fapt caracterele Bekka Palmer fără ghilimele. Totuși, îmi place să introduc ghilimele în imaginile de memorie, doar pentru a sublinia natura șirului valorii.

Sursa: Stephen Davies, The Crystal Ball – Instruction Manual, Vol. 1: Introduction to Data Science, v. 1.1. Copyright © 2021 Stephen Davies. Licența CC BY-SA 4.0. Traducere și adaptare: Nicolae Sfetcu

© 2021 MultiMedia Publishing, Introducere în Știința Datelor, Volumul 1

Rețele de comunicații 5G
Rețele de comunicații 5G

Datorită impactului său așteptat în economie și societate, a cincea generație de telecomunicații mobile (5G) este una dintre cele mai importante inovații ale timpului nostru. Așteptările cresc cu capacitățile de bandă largă ale 5G, accesibile tuturor și peste tot, la … Citeşte mai mult

Nu a fost votat $2,99$6,88 Selectează opțiunile
Telelucru (Telework)
Telelucru (Telework)

Telelucrul, ca un nou mod de a lucra prin efectuarea unei activităţi (forme de muncă) flexibile în timp şi la distanţă, utilizând tehnologia informaţională şi comunicaţiile avansate, se concretizează în teleactivităţi şi teleservicii. În ultimii ani, s-au dezvoltat rapid noi … Citeşte mai mult

Nu a fost votat $0,00 Selectează opțiunile
Lucrul cu baze de date
Lucrul cu baze de date

Colecția ȘTIINȚA INFORMAȚIEI Lucrul cu bazele de date este astăzi printre cele mai căutate abilități IT. Acum puteți obține o bază de plecare în proiectarea și implementarea bazelor de date cu o abordare practică, ușor de înțeles. ”Lucrul cu baze … Citeşte mai mult

Nu a fost votat $3,99$7,99 Selectează opțiunile

Lasă un răspuns

Adresa ta de email nu va fi publicată.