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:
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 Scratch | Linia din Python | Observație |
|---|---|---|
setează timp la 5 | timp = 5 | semnul = înseamnă „primește valoarea", nu „este egal" |
| spune (ceva) | print(ceva) | textul afișat stă între ghilimele; variabilele, fără |
| dacă ... atunci | if conditie: | se termină cu două puncte |
| repetă până când timp = 0 | while timp > 0: | atenție: condiția se întoarce — repeți cât timp e adevărată |
| repetă de 10 ori | for i in range(10): | i ia pe rând valorile 0, 1, ..., 9 |
| definește blocul meu | def 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);14nu 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, nuvâ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ă
- 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". - 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.
- Prezice pe caiet, fără calculator, ce afișează programul:
suma = 0, apoifor i in range(5):cusuma = suma + iindentat, apoiprint(suma). Abia după ce ai scris predicția, rulează și compară. - Provocare. Scrie funcția
patrat(latura)cudef, care afișează pe ecran un pătrat din caractere*—laturalinii, fiecare culaturasteluț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
Se încarcă activitatea…
Se încarcă activitatea…
Se încarcă activitatea…