KULTUROSFERA

De la blocuri la text

În „Subprograme și funcții" ai spart programul în bucăți cu nume și ai văzut că un apel bine denumit se citește ca o propoziție. Reține observația asta, pentru că azi e ziua în care propozițiile chiar devin text: același cronometru pe care l-ai construit din blocuri colorate va sta pe ecran lângă geamănul lui scris în Python. Blocurile au fost rotițele ajutătoare de la bicicletă — au făcut treabă bună, dar undeva pe drum se dau jos.

La finalul lecției vei ști să recunoști corespondența dintre blocuri și liniile de cod, să scrii primele tale linii Python — print, variabile, if, for — și să prezici ce afișează un program scurt înainte să-l rulezi.

Același program, două limbi

Numărătoarea inversă a cronometrului, față în față. În stânga, blocurile pe care le-ai folosit acum două săptămâni; în dreapta, exact aceeași logică în Python:

Blocuri (Scratch)setează timp la 5repetă până când timp = 0spune (timp)modifică timp cu -1spune „Timpul a expirat!"Text (Python)timp = 5while timp > 0: print(timp) timp = timp - 1print("Timpul a expirat!")

Citește coloanele în paralel, rând cu rând. Fiecare bloc a devenit o linie. Nicio idee nouă — doar o haină nouă. Singura noutate vizuală: în Python, blocurile din interiorul repetării nu mai stau în gura unui bloc portocaliu, ci sunt împinse spre dreapta cu patru spații. Acea împingere se numește indentare și este, în Python, echivalentul exact al cuprinderii într-un bloc C.

Dicționarul blocuri–Python

Blocul din ScratchLinia din PythonObservație
setează timp la 5timp = 5semnul = înseamnă „primește valoarea", nu „este egal"
spune (ceva)print(ceva)textul afișat stă între ghilimele; variabilele, fără
dacă ... atunciif conditie:se termină cu două puncte
repetă până când timp = 0while timp > 0:atenție: condiția se întoarce — repeți cât timp e adevărată
repetă de 10 orifor i in range(10):i ia pe rând valorile 0, 1, ..., 9
definește blocul meudef blocul_meu():subprogramele din lecția trecută, cu alt cuvânt-cheie

Rândul cu while ascunde capcana zilei: Scratch spune „repetă până când se termină timpul", Python spune „repetă cât timp mai e timp". Aceeași buclă, condiții opuse. Cine traduce cuvânt cu cuvânt, fără să gândească logica, obține un program care nu rulează niciodată — sau nu se mai oprește.

Primele tale linii: print și variabile

Ora a doua e a ta. Deschide mediul Python din sala de informatică (IDLE sau editorul online pe care vi-l arată profesorul), creează un fișier nou și scrie — nu copia, scrie — programul de mai jos:

nume = "Andrei"
varsta = 14
print("Salut, eu sunt " + nume)
print(varsta)

Rulează-l. Două observații cât ține ecranul:

  • "Andrei" are ghilimele pentru că e un text (șir de caractere); 14 nu are, pentru că e un număr. Python le tratează diferit: textele se lipesc cu +, numerele se adună cu +. Același semn, două meserii.
  • Numele variabilelor le alegi tu, ca la blocuri — dar fără spații și, ca să te scutești de surprize, fără diacritice: varsta, nu vârsta.

Schimbă numele și vârsta cu ale tale, mai adaugă o linie care afișează clasa. Fiecare rulare reușită de-acum e cod scris de tine într-un limbaj folosit de milioane de programatori — același Python care rulează pe serverele marilor platforme și în laboratoarele de robotică.

Decizii și repetări: if și for

Decizia din blocul „dacă ... atunci" arată în Python așa:

nota = 9
if nota >= 5:
    print("Promovat")
else:
    print("Corigent")

Două puncte după condiție, apoi liniile care depind de ea, indentate. else acoperă cazul contrar — blocul „dacă ... atunci ... altfel" pe care îl știi. Iar repetarea cu număr cunoscut de pași:

for i in range(1, 11):
    print(i, "x 7 =", i * 7)

Tabla înmulțirii cu 7, în două linii. range(1, 11) produce numerele de la 1 la 10 — capătul din dreapta nu intră, exact cum la un interval de pagini „citiți de la pagina 1 la 11" te oprești înainte de a 11-a. E o convenție care încurcă pe toată lumea la început; după a treia buclă îți intră în reflex.

Micile capcane ale textului

Blocurile nu te lăsau să greșești sintaxa — piesele pur și simplu nu se îmbinau. Textul te lasă. Vestea bună: Python îți spune unde s-a împiedicat, iar mesajele de eroare se citesc, nu se ocolesc.

Când primești o eroare, nu șterge tot. Citește ultima linie a mesajului, uită-te la numărul liniei indicat și compară cu tabelul de mai sus. Depanarea e o competență, nu o pedeapsă — și se antrenează exact ca serviciul la volei: prin repetare pe greșeli reale.

Exersează

  1. Scrie un program care afișează numerele de la 1 la 20, iar în dreptul fiecărui număr par afișează și cuvântul „par". Îți trebuie for, if și operatorul % (restul împărțirii): numar % 2 == 0 înseamnă „par".
  2. Tradu în Python numărătoarea inversă completă a cronometrului, cu mesajul final. Pornește de la coloana din dreapta a figurii și completează ce lipsește.
  3. Prezice pe caiet, fără calculator, ce afișează programul: suma = 0, apoi for i in range(5): cu suma = suma + i indentat, apoi print(suma). Abia după ce ai scris predicția, rulează și compară.
  4. Provocare. Scrie funcția patrat(latura) cu def, care afișează pe ecran un pătrat din caractere *latura linii, fiecare cu latura steluțe. Apeleaz-o cu 3 și cu 6. Indiciu: print("*" * latura) repetă caracterul.

Ai scris azi primele programe text din viața ta — dar au fost monologuri: programul vorbește, tu doar asculți. Săptămâna viitoare îl înveți să pună întrebări și să aștepte răspunsul, pe calculatorul real din fața ta. Tot atunci, evaluarea de modul — tabelul din dicționar și capcanele de mai sus sunt exact materialul de recitit.

Verifică-te

Activitate

Se încarcă activitatea…

Activitate

Se încarcă activitatea…

Activitate

Se încarcă activitatea…