Sunteți pe pagina 1din 192
CULS* PrOgiAINAre PENTRU CORI DELA err SCRATCH $I PYTHON LA CONCEPEREA DE JOCURI xro0@( 10% 1 4018 <5 #1 } &€ 0 V = * 0 3: 1 > 1) w& y 1 \ CAROL VORDERMAN CU S DE LA LIMBAJELE SCRATCH SI PYTHON LA CONCEPEREA DE JOCURI DORLING KINDERSLEY London, New York, Melbourne, Munich, Dethi (Computer Coating for Kids Carol Vorserman Copyright © 2014 Doting Kindersley Limited Edie publeata pentru prima dota Th Marea Baitania,tn 2014 {de Dorling Kindersley imited, © companie a Penguin Random House: EDITOR Som Priddy DESIGN Fiona Macdonald, Simon Murel DIRECTOR ARTISTIC. Phil Ormerod EDITOR COPERTA cud Whatley DESIGN COPERTA Laura Brim Toate crepturle rezercate. Nilo parle o acestel uct nu poate fl reprodus, siocata Inn sslem de regaare « datolor sau transmis in ict o forma g prin nil un milo, electonic, mecanic, prin folocopiere, Iregisrate sau aif, Grd permisiunea Ceindtorull crepturor de autor sa edt, ae. eam pmenaree acces asraneannn meas ee No puto vata pe of wonuliteraro| CCurs ce programare pentru copit De a Imbojele Scratch sPytnon la conceperec de jocuri ‘Carel Vordetman Copyright © 2015 Grup Medio Litera peniryverstunec in mba rornénd Toate dreptutle rezerate TTaducore an mba englexé: Georgiana Harghel Eattor: Vieroxcu sit Redactor: Andreea Stoica CCorector: Emilia Achim ‘Tehnoredactare si prepress: Bogdan Coseary Lecturé de speciaiate: Flip Sucta Descriorea CIP « Biblioleci Najionale « Roméniet \VORDERMAN, CAROL ‘Curs de programare pentru copil.De fa imbajele ‘Scratch ¢ Python a conceperea de jocur Corel Vorderan; ‘nad: Georgiana Herghel.~ Bucures: Litero, 2015 'SBN 976-606-741.397-7 |LHarghel, Georgiana (rad) 94560) =) & A oe 1 A ‘CAROL VORDERMAN este una dintre cele mai iubite prezentatoare TV din Marea Britanie, renumita pentru talentul la matematicd. Are o diploma in inginerie de la Universitatea Cambridge. Carol este foarte interesaté de programare si este convinsd c& fiecare copil ar trebui 58 aiba sansa si invefe astfel de lucruri extrem de folositoare. A fost gazda anumeroase programe TV despre stiinfa si tehnologie, precum Tomorrow's World si How 2, dar si al The Pride of Britain Awards, de la BBC, ITV si Channel 4. De asemenea, 2 fost coprezentator vreme de 26 de ani al emisiuni Countdown de pe Channel 4 siconsilier al prim-ministrului britanic David Cameron privind viitorul predarii matematicii in Marea Britanie. In oricare dintre aceste ipostaze, Carol a dat dovada de aceeasi pasiune si de devotament in explicarea matematici, a stiinfei sia tehnologiei intr-un mod fascinant siusor de infeles, DR. JON WOODCOCK este absolvent de fizica al Universitat Oxford si are un doctorat in astrofizica computational. A inceput sa programeze de la 8 ani, trecénd de la microcontrolere cu un singur cip la supercomputere de clas mondial. Numeroasele sale proiecte includ simulari de mari dimensiuni in spatiu, cercetare in companiile de inalt& tehnologie si robotiinteligenti facuti din piese vechi, Jon are o adevarata pasiune pentru educatia prin stiintd si tehnologie, tinand prelegeri despre spatiu si conducdnd cluburi de programare in scoli, A lucrat la numeroase carti despre stiintd si tehnologie in calitate de colaborator si de consultant. SEAN McMANUS a invatat programare cand avea 9 ani. Primul lu limbaj de programare a fost Logo. Astizi, este autor in domeniul tehnologiilor specializate si jurnalist. Printre c&rtile publicate se numara Scratch Programming in Easy Steps, Web Design in Easy Steps si Raspberry Pi for Dummies. Vizitat site-ul, www.sean.co.uk, pentru jocuri si tutoriale in Scratch, CRAIG STEELE, specialist in informaticd, este manager de proiect pentru CoderDojo Scotland, care conduce cluburi de programare gratuite pentru tineri. Craig a lucrat si pentru ‘Scottish Qualification Authority, Glasgow Science Centre si University of Glasgow. Primul sau ‘computer a fost un ZX Spectrum. CLAIRE QUIGLEY a studiat informatica la Universitatea Glasgow, unde a obtinut diploma de absolvent si un doctorat. Lucreazé in cadrul laboratorului computerizat de la Universitatea Cambridge, fiind implicata si in cadrul unui proiect care are drept scop dezvoltarea abilitatilor de gandire computationals la coplii de scoalé primara, Face parte din CoderDojo Scotland, un club de programare pentru tiner DANIEL McCAFFERTY a absolvit informatica la Universitatea Strathclyde sa dezvoltat, programe pentru unele dintre cele mai mari banci de invest lume. In timpul liber, Daniel este profesor la CoderDojo Scotland, un club de programare pentru tineri, CUVANT-INAINTE de Carol Vorderman CUM SA FOLOSESTI ACEASTA CARTE CEESTEPROGRAMAREA? = ©*_——Decizti si ramurt 66 Sim sidetectie Ce este un program de computer? 68 —_ Bucle complexe Cum sa gandesti ca un computer 70 —_Trimiterea de mesaje Cum devii programator 72 Crearea blocurilor 74 Project 3: Monkey mayhem INCEPE cw SCRATCH 82 E timpul sa experimentezi Ceeste Scratch? (3° JoAcA-TE cu PYTHON Instalarea si lansarea limbajului Scratch Interfata Scratch 86 Ceeste Python? Actori 88 Instalarea Python: Blocuri colorate si scripturi 92 Itiprezentém IDLE PROIECT 1: Scapa de dragon! 94° Erori Cum faci lucrurile sa se miste 96 Proiect 4: Jocul fantomelor Costume 98 Jocul fantomelor decodificat De-a v-ati ascunselea 100 Fluxul programului Evenimente 102 Comenzi simple Bucle simple 104 = Comenzi mai complexe Creioane si testoase 106 Care fereastra? Variabile 108 ~~ Variabile in Python Matematica 110 Tipuri de date Siruri si liste 112 Matematica in Python Coordonate 114 — Siruriin Python $a facem zgomot! 116 Date introduse si rezultate Project 2: Da cu zarul 118 Luarea de deci Adevarat sau fals? 120 Ramificarea 122 124 126 128 130 132 134 136 138 140 148 150 152 154 156 158 160 162 164 176 180 182 184 186 Bucle in Python Bucle while Cum sa scapi din bucle Liste Functil Project 5: Propozitii fara sens Tupluri si dictionare Liste Variabile si functil Project 6: Masina de desenat Erori si corectarea lor variabile Algoritmi Biblioteci Realizarea de ferestre Culoare si coordonate Realizarea de forme Schimbarea lucrurilor Reactia la evenimente Proiect 7: Distrugatorul de bule Ce urmeaza? IN INTERIORUL COMPUTERELOR In interiorul unui computer Binar si baze Simboluri si coduri Porti logice 188 190 192 194 198 200 202 204 206 208 210 212 214 216 218 220 224 Procesoare si memorie Programe esentiale Stocarea datelor in fisiere Internetul PROGRAMAREA TN LUMEA REALA Limbaje computerizate Staruri ale programarii Programe solicitate Jocuri pe computer Realizarea de aplicatii Programare pentru Internet Utilizarea JavaScript Programe daunatoare Minicomputere ‘Cum sé devii un super programator Glosar Index ‘Mulgumiri Cuvant-inainte Cu doar cativa ani in urma, programarea computerelor parea un soi de abilitate misterioasa, pe care o posedau doar specialistii. Pentru multe persoane, ideea ca programarea poate fi distractiva era ciudata. Dar lumea s-a schimbat. In doar cativa ani, internetul, e-mailul, retelele sociale, telefoanele inteligente si aplicatiile au inceput sa fie tot mai prezente in viata noastra, transformand modul in care traim. Computerele au devenit indispensabile astazi; cu greu ne putem imagina viata noastra fara ele. in loc sé dam un telefon cuiva, trimitem un mesaj sau folosim mediile sociale. De la cumparaturi si mijloace de petrecere a timpului liber la stiri si jocuri, asimilam cu nerabdare orice ne ofera computerele. Dar putem face mai multe, nu doar sa folosim aceasta tehnologie. 0 putem si crea. Invatand programare, ne putem crea propriile capodopere digitale. Tot ceea ce realizeaza computerele este controlat de linii de cod pe care cineva le-a introdus, la un moment dat, folosindu-se de tastatura. Poate parea o limba straina, dar este una pe care oricine o poate invata destul de repede. Multi ar spune ca programarea a devenit una dintre cele mai importante abilitati pe care le poti deprinde in secolul XI. Sa inveti programare poate fi extrem de amuzant, pentru ca obtii rezultate imediat, indiferent cat de mult trebuie sa inveti. De fapt, este atat de amuzant sa creezi jocuri si programe, incat pare ca nu mai depui nici un fel de efort odata ce ai devenit pasionat de aceasta activitate. In plus, este si creativ — programarea ar putea fi considerata prima stiinta care combina arta, logica, povestirea si afacerile. Mai mult, programarea intareste gandirea logica si abilitatile de rezolvare a problemelor — vitale in multe domenii diferite ale vietii, de la stiinta si inginerie la medicina si drept. Numarul de locuri de munca necesitand cunostinte de programare va creste mult in viitor si deja se resimte lipsa unor programatori buni. Invata programare, iar lumea digitala ti se va intinde la picioare! yo ~ |, ay Covel \r WA et a CAROL VORDERMAN a Cartea de fata prezinta toate conceptele esentiale necesare pentru a intelege programarea computerelor. lar pentru a te ajuta sa pui ideile [ 7 rae Inaestcagnmuteae doactlte aa cons in practicd, in urmatoarele pagini vei gsi simulte —jruecyonen proiecte distractive; totul imparti capitole LL mici, pentru a fi mai usor de urmirit si de inteles. a = Cin “i ol Fiecare subiect este des in detaliu, cu exemple si exerci fan De-a v-ati ascunselea Bine a vent in studoul de efecte specie! Folosind blocurilevoletLooks’ fla cum s8 fac actor si dispard $8 reapara 58 se mareasca sau sa se mleyorezesicum $3 apara isd disparatreptat. Ascunderea actorilor ir aface un acter ssa elosste bloc de> ‘etorl se asp sen seat poate ma Jom poate vzu dae ust fst lee show pent lise vba nou. CAsutele,vez site trimit la alte capitole care au legatura cu subiectul discutat Dimensiuni siefecte Sespurle pot lose pent aschnba Simonson una actor at aiugeetece lusteaille colorate scot in evidensa difertele concepte de programare Utilizarea efectelor pentru telepor Agha oho. so eerie a ‘estate oom sparse Wepre In ne frcicpees Scripturile si codul de programare sunt explicate linie cu linie eS. aera wel Instructiunile arata pe ce si faci clic sau s8 selectezi Comentarile utd Ja explicarea fiecarui pas a CUM SA FOLOSESTI ACEASTA CARTE Cele 7 proiecte consolideaz abilitatile de programare, Paginile ‘cu proiecte sunt scoase in evident deo banda albastrs Instructiunite simple, pas cu pas, te ghideazs prin fiecare protect USach-re cu Pyeem chammeememretorease e oman e Gercarcaneseem = foaei eee = are fo wn Se aaa ten eee e | Scemicaewieer | Algae eerie cet es | eases | eoupucranceaeh att besos secant | Casetele ofer’ informati suplimentare: sfatur, defini i Fucruri de finut minte Aceasté iconita pentru salvare apare in paginile cu proiecte. Iti aminteste cand sa salvezi ce ai facut, astfel incat s nu pierzi niimic in cazul in care computerul se defecteaza. Aminteste-ti sd salvezi a mereu ce ai lucrat. Flecare linea programului este etichetats clr, deci nu pot! gresi ‘Acest simbol araté cd proiectul continua pe pagina lurmatoare Nu ia saver ceailucat Ce este 2 . CE ESTE PROGRAMAREA? Ce este un program meee aun computer de computer? as programator Un program de computer este un set de instructiuni pe care un computer le urmeaza pentru a realiza o sarcina. »Programarea” sau ,codificarea” inseamna scrierea pas cu pas a instructiunilor care ii spun computerului ce sa faca. Programele de computer sunt pretutindeni Suntem cu totii inconjurati de programe computerizate. Multe dintre aparatele pe care le folosim zilnic sunt controlate de ele. Aceste masini folosesc toate instructiuni pas cu pas scrise de un programator de computere. nm By] < Telefoane mobile A Software pentru computere Programele iti permit s& dai Tot ceea ce face un computer, de la tm J) telefoane sau sa trimiti mesaje navigarea pe Internet la scrierea de text. Cand caufi un contact, un documente sau la redarea muzici, program gaseste numsrul de este rezultatul unui cod scris de un telefon corect. programator. Automobile La unele automobile, programele de computer monitorizeaza viteza, ‘temperatura si cantitatea de combustibil din A\ Masini de spalat rezervor. Pragramele de Masinile de spalat sunt programate computer pot ajuta chiar pentru a urma diverse ciclur. la controlul franelor Programul de computer controleaz. pentru siguranta temperatura apel si durata spalati pasagerilor. / . CE ESTE UN PROGRAM DE COMPUTER? Cum functioneaza programele de computer Computerele poate ca par foarte inteligente, dar sunt, de fapt, doar niste cutii care urmeaza instructiuni foarte rapid si precis. Pentru cd suntem inzestrati cu inteligenta, putem sé le facem sa indeplineasca sarcini diverse prin scrierea de programe sau de liste de instructiu Computerele nu pot gandi Un computer nu va face nimic “1 de unul singur, Depinde de Scie us program! progiamator peatrdl ada 7 Poti a ji spui computerului ce si lnstactlanile faca scriind un set de instructiuni foarte detaliate numite program. Fiecare instructiune trebuie s8 fie destul de scurt pentru a fiinteleasa de computer. Daca Ferd instructiuni — instructiunile sunt incorecte, computerul ST ee incest 9308.0) nu se va comporta asa cum vrei. nu face nimic program de computer prin care se face ‘numardtoarea inversi Stor count in range(10, 0, -1) Unainte de lansare print (Counting down", count) 3g) Limbaje de programare Computerele pot urna doar Instructiunile scrise int-un limbaj pe care ilinteleg. Depinde de programator s& Soe aleaga ce limbaj este cel mai bun pentru respectiva sarcind. - ‘Toate programele sunt convertite for count in range(10. 9, -1) print¢*counting down”, count) {n,cod binar’ un limba] computerizat de baza care foloseste doar zero si unu Hardware" inseamna partite fizice ale computerului, pe care le p vedea sau atinge (toate cablurile, Circuitele, tastatura, monitorul si asa mai departe).,,Software” inseamna ws BLAST OFF! programele care se deruleaza pe computer si care controleazi cum functioneaza acesta. Software-ul si hardware-ul lucreaz’ impreuna pentru a face computerele si functioneze util. 16 CE ESTE PROGRAMAREA? Cum sa gandesti fear program de computer? ca un computer <5 programator Un programator trebuie sé gandeasca precum un computer. Instructiunile trebuie descompuse in bucati mici, astfel incat sa fie foarte clare. Cum sa gandesti ca un robot Imagineazé-ti o cafenea unde chelnerul este un robot. Robotul are un computer simplu pe post de creier si trebuie si se spund cum sa iasd din bucétaria cafenelei pentrua | realizarea unel sarcini. Un program servi mancare clientilor asezati la mese. Mai intai procesul | este un algoritm care a fost tradus trebuie descompus in sarcini simple. intr-un limbaj ce poate fi inteles de Un algoritm este un set de instructiuni simple pentru computer. Chelner robot program 1 Folosind acest program, robotul ia mdncarea de pe farfurie, intrd direct prin peretele bucatariei in sala de mese si pune mancarea pe podea. Acest algoritm nua fost destul de detaliat. <| Dezastrut Instructiunile nu au fost clare: am uitat s8 {i spunem robotului si foloseascé usa. Poate s8 pard evident pentru oameni, dar computerele nu pot gandi singure. 3D) helner robot program 2 De data aceasta, am spus chelnerului robot sa foloseasca usa bucatariei. lese pe usa, dar apoi se loveste de pisica localului, se impiedica siti cade farfuria pe podea. 1, Ridicd farfuria cu mancare pe ea 2. Deplaseaza-te din bucdtarie la masa clientului in 2 pas Deplaseaza-te la usa dintre bucatarie si sala de mese A Totnueste perfect Deplaseaza-te de la usa la masd Robotul inca nu stie cum sa se descurce cu obstacole precum pisica. Programul trebuie sa 3. Pune farfuria pe masa in fata clientului ji ofere robotului instructiuni si mai detaliate, astfel incat 8 se poata deplasa in siguranté. = 7 CUM SA GANDESTI CA UN COMPUTER Chelner robot program 3 In aceasta versiune a programului, robotul livreazé ‘cu succes méncarea in sala de mese evitand orice obstacol. Dar, dupa ce pune tava jos, robotul ramane in picioare, lang’ ‘masi, In loc s& se Intoarc’ in bucatarie. Ridicd o tava cu mancare, tinand-o mereu dreapta. Deplaseaza-te de la bucatarie in sala de mese in 2 pasi: Deplaseaza-te la usa dintre bucatarie si sala de mese verificand dacé nu sunt obstacole si ocolindu-le Deplaseaza-te de la usa la masa verificand daca A Succes, in cele din urma? nu sunt obstacole si ocolindu-le In sfarsit, robotul poate livra mancarea : . in siguranta. Dar am uitat sa fi dam "3. Pune farfuria jos pe masa, in fafa clientulu bucatarie 7) instructiuni sa se intoarca $i s8 ia urmatoarea farfurie. Exemplu din lumea reala Chelnerul robot poate fi imaginar, dar asemenea algoritmi actioneaza peste tot in jurul nostru. De exemplu, un ascensor controlat de un computer este pus in fata aceluiasi gen de probleme. Sa urce sau sé coboare? Lace etaj s§ mearga? Daca butonul apasat este mai sus decat etajul la care te afli: Misca liftul in sus Daca butonul apasat este mai jos decat etajul la care te afli: <] Program pentru lift [ Calliftul s8 functioneze corect Misca liftul in jos sin conditii de sigurants, omens ¥ a fiecare pas trebuie s8 fie precis, lar sis& acopere fiecare posibilitate. Programatoril aoe . . CE ESTE PROGRAMAREA? Cum devii programator ear Scratch? Programatorii sunt cei care scriu programele aflate in spate- eectasy le a tot ceea ce vedem sau facem cu ajutorul unui computer. Python? Poti crea programe invatand un limbaj de programare. Limbaje de programare Exist’ o gama uriasa de limbaje de programare dintre care poti alege. Fiecare dintre acestea poate fi folosit pentru sarcini diferite. lata cdteva dintre cele mai populare limbaje si lucrurile pentru care sunt folosite cel mai adesea: C ‘Un limbaj puternic pentru construirea MATLAB Ideal pentru programele care sistemelor de operare ale computerelor. trebuie si execute multe calcule. Ada Fest pentu.acontolanavete spate Rub Transforms automat o multime sateliti si avioane. y de informayii in pagini web. Folosit pe computere, telefoane mobile a Un limbaj folosit pentru a construi Java sitablete. Javascript website-uri interactive. Ce este Scratch? & Scratch este o modalitate minunata de a incepe programarea. Programele sunt create prin conectarea unor blocuri de cod sinu prin scrierea acestora. Scratch este rapid si usor de folosit gi te invata ideile-cheie de care ai nevoie pentru alte limbaje de programare. = Ja Programul apare pe aceasta Codul este realizat prin Jaturd a ecranului conectarea blocurilor colorate s a CUM DEVII PROGRAMATOR Ce este Python? oa Oamenii din lumea intreaga | ghostgame folosesc Python pentru a crea | #'Ghoet Game jocuri, instrumente si site-uri web. Este un limbaj grozav odata ce il stépanesti pentru ca te ajuta print(‘Ghost Game’) sa realizezi tot felul de programe feeling_brave = True diferite. Python arata ca un amestec de cuvinte si caractere usor de recunoscut, asa cd poate | While feeling_brave: fi citit si inteles usor. ghost_door = randint(1, 3) un peoater print(‘Three doors ahead...") scris in Python a from random import randint score = 0 Inceputul Este momentul sa incepi s8 programezi. Ainevoie doar de un computer cu conexiune la Internet. Aceast carte incepe cu Scratch ~ limbajul perfect care sa te ajute sa devi un expert in programare. Pregiiteste-te 3 intri in lumea minunata a programarii computerelor. SEAT DE EXPERT Ca programator, ar trebui sa faci experimente cu codurile si cu | programele pe care le faci. Unul | dintre cele mai bune moduri de | ainvata programare este dea te | juca side a vedea ce se intampla | cand schimbi diferite parti ale | codulul ncercina diverse | | | | | variante, vei descoperi modalitati noi de a face lucrurile. Vei invita mai multe despre programarea computerelor si te vei distra mai mult. Incepe cu Scratch 2 __INCEPE CU SCRATCH Ce este Scratch? —— lansarea Scratch Scratch este un limbaj de programare ual usor eee Interaha 26-27) de invatat. Poate fi folosit pentru a crea tot felul Scratch de programe distractive gi interesante. Blocuri colorate 30-31 > shscripturi Sa intelegem Scratch Scratch este perfect pentru crearea de jocuri si animatii. Are colectii (sau ,biblioteci") imense de grafic si sunete Blocurile se unesc minunate cu care te poti juca. recum plesele) ‘ol mab cape propane — . am Scratch este un limbaj de & de programare programare. Nu trebuie sa scrii foarte mult Scratch foloseste blocuri colo- si este usor s8 incepi. rate de coduri, Blocurile sunt - selectate si unite pentru a forma un script, care reprezinta un set a Serle primul —>S. de instructiuni. taprogom : usenet svt pucyiowaR “Scratching” este o tehnicd de a mixa diverse sunete pentru a compune o muzica noua. cerns, Limbajul de programare Scratch - iti permite si amesteci imagini, Unui program ii pot fi adaugate obiecte, esate Ce) | sunete si scripturi pentru a crea precum oameni, vehicule si animale. Aceste ee noi programe de computer. obiecte se numesc actor (in engleza sprites) 7 Fe nf t | Scripturile le fac s& se miste si sé vorbeasca a | Actori pot fi programati s3 ad mearga,s8alerge sisi danseze CE ESTE SCRATCH? 23 Un program Scratch tipic lat& un exemplu de program Scratch. Toata actiunea are loc intr-o zona a ecranului numita,,scena" La scena pot fi adaugate _Butonul rosu opreste imagini de fundal si actori si poti scrie scripturi pentru a realiza ee diverse actiuni. Steagul verde ruleaza rogramul \ [> Rularea unui program i (Gntitied Inceperea unui program se Untitled mii 7 babe unsaved numeste.rulare” Pentru a = es rula un program in Scratch, fa clic pe steagul verde de £ deasupra scenei. | Imagine de fundal ‘ee Prin adaugarea unui script, rechinul sprite se va migca Pe scena se pot afla ‘mai multi actori deodats © Scripturi care fac actorii si se miste Scratch confine blocuri care pot fi folosite pentru a face scripturi. Acest script face rechinul 58 sara pe ecran. Blocul next costume" il face sisi deschid $i s8 isi inchida gura cu fiecare miscare. * TINE MINTE Programe Scratch In Scratch, cand salvezi o lucrare, aceasta se numeste ,proiect, Un proiect include toate fundalurile, sunetele, scripturile $i toti actorii cu care lucrezi. Cand incarci din nou proiectul, mai tarziu, il poti relua de unde ai salvat. Un proiect Scratch este un program de computer. Blocul,forever” face actorul sa se miste fara oprire INCEPE CU SCRATCH Instalarea silansarea “eum: limbajului Scratch ——prsguaraeco Pentru a incepe programarea in Scratch, trebuie sa ai software-ul Scratch. Poate fi instalat pe un | computer sau poate fi folosit online. | Crearea unui cont Scratch Contul tau Scratch poate fi folosit pentru a impartasi programele pe care le faci pe website-ul Scratch, dar si pentru a salva ceea ce ai lucrat online. Viziteaza website-ul Scratch la: http://scratch.mit.edu/ si f& clic pe,Join Scratch” pentru a-ti crea contul. a Scratch depinde de felul ‘in care este folosit: pe Intra pe http://scratch.mit.edu si fa clic pe,Join Scratch". Completeaza formularul pentru a crea un nume de utilizator si © parola, Asigura-te c& ai permisiunea Parintilor sau a tutorelui pentru a intra Ontine Beate 2 Scratch la: http://scratch.mit.edu/ scratch2download/. Ruleaza programul de instalare si pe ecranul tau va apérea Offline © iconits Scratch. = sce INSTALAREA $1 LANSAREA LIMBAJULUI SCRATCH .. SFA EXPERT — Instructiunea clic” inseamna cd trebuie s& apesi pe butonul din stanga al mouse-ului.,Clic dreapta"™ inseamna ca trebuie sa folosesti butonul din dreapta al mouse-ulul Daca mouse-ul are doar un buton, fine apasat tasta ,CTRU' si apoi apasé pe mouse pentru a face un clic dreapta. 2E i es Versiuni diferite de Scratch in aceasta carte, se foloseste Scratch 2.0, cea mai recent versiune de Scratch. Foloseste aceastd versiune daca este posibil. Una mai veche va fi usor diferita. A Scratch 1.4 A Seratch 2.0 Versiunea mai veche de Scratch Cea mai recenta versiune are are scenain partea dreapté unele comenzi noi, iar scena aecranului. se afld in sténga ecranului Cand esti logat, Scratch salveaza automat | ceea ce al ficut. Pentru a gasi lucrarea, {8 clic pe numele de utilizator din partea | din dreapta sus a ecranului si apoif& clic - pesMy Stuff Versiunea web a Scratch functioneaza bine pe computere Windows, Ubuntu si Mac. Cu toate acestea, are nevoie de software-ul ‘Adobe Flash, asa c3 nu va functiona pe anumite tablete. _ Ficlic pe meniul,file* din partea de sus | aecranului si alege,Save As". Intreab Pieroana cate detine computerul unde _ar trebui sa iti salvezi ce ai lucrat. ‘Versiunea offline a Scratch functioneaza bine pe computere Windows si Mac. Nu functioneaza bine pe computere ‘are folosesc Ubuntu Daca un computer foloseste Ubuntu, incearca versiunea o INCEPE CU SCRATCH 26 Interfata Scratch eee Acesta este ecranul sau,,interfata” Scratch. Scena este in stanga, iar programele sunt urmeazi iti explicd cum si le create in dreapta. OPTIUNI DE MENIU lata ce fac optiunile de meniu din partea de sus a ecranului. Salveazé lucrarea sau Incepe un nou proiect. ‘$terge orice greseald sau schimba dimensiunile scene Daca te blochezi, aici vei INSTRUMENTE CURSOR Fa clic pe instrumentul pe care vrei s8ilfolosesti si apoi pe actor sau pe scriptul pe care vrei sa il mo Copiaza un actor sau un $terge un actor Mareste un actor. Micsoreaza un actor. | n- ere autor pentru un bloc. | L oe V Experiment diversele file pentru a explora sia experimenta cu interfata Scratch. Proiectele care folosest. Clic pentru a Optiuni Instrumente marire pe demeniu cursor ‘totecranul L \ Tet: T Vets Ms a al a atx 1s ye) Butoane pentru Chenaralbastru in Butoane pentru modificarea jurul actorului a adauga fundalulut selectat nol actor! Bava INTERFATA SCRATCH 27 > Harta Scratch Scena este locul in care ruleazé programele. Fisa de Actori se gsesc insta PALET sunete dedicat lor, iar blocurle a de script e gasesc ane BLOCURI in paleta de scripturi — = \ Creeaza scripturile Ia inzona scripturior. ee \ LISTA SCENE _ costumes | Sounds | Scripts ‘Motion Events Control Selecteaza diferite i sensing << Pull debiocu Iz ) Operators Data More Blocks Actor selectat pecttia eos taiaas bows sete tum (¥ G5) degrees move (70) steps. e et Bocuse imbina tun ©) GB) degrees impreund — ; foloseste mouse-ul ‘pointin direction pentrua le muta pointtowards [~ ] sox Or® goto [moe] c : Acestescriptur slide D secstox: Qy: ©) ‘controleaza actorul bufnits Trage blocurile de ail in zona scripturilor Realizeaza pentrua crea scripturi —scripturile aici Depoziteaza scripturi, actor 7 Mareste Sunete si costume in rucsacul de rezervis scripturlle mt - INCEPE CU SCRATC Actori eer Actorii sunt componentele de baza ale Scratch. Costume program Scratch este alcatuit din actori si din scripturile = ascunselea 42-43) controleaza. Programul ,Scapa de dragon!” de la le 32-37 foloseste trei actori: 0 pisica, un dragon si o gogoasa. Ce pot face actorii? Actorii sunt imaginile de pe scena. Scripturile sunt programate sa fi faca s8 actioneze. Actorii pot fi instruiti $8 reactioneze la alti actori sila utilizatorul programului. lat cateva lucruri care pot fi facute de actori: fh autem scoate o mule ddesunete diferit. Actori in interfata Scratch Fiecare proiect poate avea cativa actori si fiecare dintre actori poate Soennieenene avea propriile scripturi. Este important sa adaugi scripturi pentru apartin actorulul actorul corect si sd stii cum sé faci schimb intre ele. deaici Selecteaza actori dliferti facand clic peel D> Actori si scripturi Un proiect poate avea mai multi actor §ifiecare actor poate avea multe scripturi. Crearea si editarea actorilor ACTORI © mle Jocurile sunt mai incitante cénd exist mai multi actori care pot fi loviti, ascunsi sau care s se fugdreasca unii pe altii in jurul scenei. Este simplu s8 creezi, s8 copiezi si s8 stergi actori. V Creeaza un actor Foloseste butoanele de deasupra listei de actori pentru ‘a ad’uga sau crea un actor pentru programul tau. Foloseste ‘camera web Alege din biblioteca Selecteazé o imagine din computer Creeazé un ‘actor nou V Copiaza sau sterge un actor Pentru a copia un actor 5 scripturile sale, f@ clic dreapta pe acesta in lista de actor siselecteaza ,duplicate’, Aceasté optiune copiazd un actor x duplicate Aceastd optiune sterge un actor Cum dai nume unui actor Cand incepi un nou program in Scratch, actorul pisicd este numit,Sprite 1“, Este mai usor s scrii programe daca dai nume mai explicite actorilor. De asemenea, este mai usor s intelegi si sé administrezi scripturile. Schimba numele Cand se deschide panoul cu informatii, fa clic pe caseta de text sifoloseste tastatura Scrie re pentru a schimba numele actorului. cael aici ot 68 direction 50° ©) rotation syle candragin player: show: Dee Selecteaza actorul Selecteaza un actor din lista si apoi f clic pe butonul albastru,, din colt. Butonul albastru,t" Fa clic pe sageata albastra din stanga actorului pentru a inchide panoul cu informati Noul nume al actorului apare In lists = - e, ss ,, 30 i. INCEPE CU SCRATCH Blocuri colorate —— . . . Seratch si scripturl Tor) > dragon! Blocurile sunt codificate pe culori in functie de ceea ce fac. Prin imbinarea lor se construiesc scripturi care ruleaza in ordinea in care sunt puse, de sus in jos. Blocuri colorate Scripts Costumes Sounds) Exist zece tipuri diferite de blocuri in Scratch. Fa schimb intre ele folosind butoanele din I Events paleta de blocuri. Fa clic pe o culoare pentru Looks Control a vedea toate blocurile din acea sectiune. | Sound Sensing Ben |) operators [More Blocks Butonul care arata blocurile,Data® portocalit Functii ale blocurilor Diferitele tipuri de blocuri fac lucruri distincte V Miscare, infatisare, sunet si creion in programe. Unele dintre ele fac actorii Aceste blocuri controleazé ce face un actor pe ecran - sa se miste, unele administreaza sunete si aceasta se numeste outputul unui program. Alege un actor 5s teas * 2 ii a fe bi di fe altele decid cand se intampla unele lucruri, "cP flecare Bloc Pentru a vedea ce face, Acest loc Blocurile maro ,Events” fac sd se intample aca lucruri. Blocurile albastre-deschis Sensing” detecteazs informatii despre tastatur’, mouse si despre ceea ce atinge actorul tr EI “pendowm un sunet Verified daca Acest bloc deseneazs ‘olinie ce urmeazi este apasata bara de spatiu rmigcarea actorulut BLOCURI COLORATE $1 SCR V Date si operatori V Control Blocurile portocalii Data’ si blocurile verzi Blocurile ,Contro!”iau decizii despre momentul in Operators” inmagazineaz3 nume si cuvinte care blocutile ruleazs. Acestea pot fi programate sifac diverse lucruri cu ele. pentru a repeta instructiunile, Depoziteaza un numar intr-o variabil Acesta face blocurile Alege un numar din interior sé ruleze |pickrandom @ to GO) > laintamplare ‘in bucla (fara oprire) Ordinea scripturilor Cand ruleaza un program, Scratch urmeaza instructiunile de pe blocuti. incepe din partea de sus a scripturilor si continua in jos. < Pisica ganditoare Cand este folosit acest script cu actorul pisic’, pisica va astepta 2 secunde, se va gandi un moment, va face pauzd o secunda si apoi se va misca. Programele fucaesdesus “= TINE MINTE ruleazé ultima Pentru a opri toate scripturile care ruleazé intr-un program, faclic pe butonul rosu de oprire de | Rularea scripturilor deasupra scenel. Acesta are forma . ° " unui hexagon. Il vei gasilanga Cand ruleaza un script, acesta straluceste. Foloseste butonul _steagul verde folosit pentru | cu steag verde de pe scena pentru a rula un script sau f& clic a porni programul. Y . _————— pe un script sau un bloc pentru a/t face sa ruleze. | Gaya —) Conturulluminos Zo» inseam ca sept | ruleazs | Apasipe acest | buton pentrua | pri un program INCEPE CU SCRATCH Scapa de dragon! Acest proiect introduce notiuni de baza de programare in Scratch. iti arata cum sa faci un joc prin care sa ajuti actorul pisicd si evite un dragon care scuipa foc. Fa pisica sa se miste In aceasta etapa, se explicd modul in care poti face pisica sa se miste si sa urmareasca peste tot cursorul mouse-ului. Urmeaza instructiunile cu grija, altfel jocul ar putea sa nu mearga. Deschide Scratch. Fa clic pe 11> File” din meniu si selecteazi New" pentru a incepe un nou proiect. Apare actorul pisica [ paleta de blocuri Apo’ fa clic pe blocul,forever’ tine ‘, butonul mouse-ului_ | one, apasat si trage blocul in zona nowinSatch scripturilor din , s eo Eu, pisca, aparinficare proiect drumul blocului. Fa clic pe acest bloc i» Fa clic pe butonul albastru Motion” din paleta blocurilor. Vor aprea comenzile ,Motion” albastre. Trage blocul point towards" in zona scripturilor si 3-i drumul in blocul forever’. F& clic pe sageata rneagr’ din bloc si alege ,mouse-pointer” Fa clic pe sigeata de extindere a meniulul siselecteazd amouse-pointer” » FS clic pe butonul galben,Control* din dreapta. Elibereaz’ butonul pentru ada (24-25 Instalarea silansarea Scratch (26-27 Interfara Scratch Motion Events | Looks [sound Sensing [ren [J operators peta [J More Blocks | Cocina seiptrlor Fa clic pe butonul verde Events” din paleta de blocuri. Trage blocul when the green flag clicked” in zona scripturilor. Du-l in partea de sus a scriptulul Acest bloc se potriveste in partea de sus. scriptului Afost ales meniul smouse-pointer” SCAPA DED ‘pa, Inceard si rule programul ficand ce pe steagul verde din partea de sus a scenei, and misti mouse-ul pe scena, psica se intoarce cu fafa spre cursorul mouse-ulul () (Untitled EAS yates tensed Sigs mouse-u sipriveste pisica Invartindu-se In urmarirea lu Foloseste Ruleaza Opreste cecranul marit programul programul Fa clic din nou pe butonul Motion’ si trage blocul ..._ Imaginea din spatele actorilor se numeste fundal. La move 10 steps" in zona scripturilor. Eibereaz-lin J» stnga lstel de actor se afld un buton pentru a adauga blocul.forever’ Fa clic pe steagul verde astfel incét un fundal din biblioteca de fundalurri F& clic pe acesta, pisica s8 urméreascé cursorul mouse-ului! apoi selecteazi tema, Space” din list8. F& clic pe imaginea stars” si apoi pe butonul ,OK’; din dreapta jos. } | Stage | | 1 backdrop. | Alege un fundal | din bibliotecs New backdrop: | dal / oh Blocul forever” se Elibereazd acest bloc Intinde automat pentru In blocul forever" aface loc <1 Pisica in spagiu Interfata Scratch arata acum asa, Ruleazi programul si pisica va urmari cursorul ‘mouse-ului prin spatiu. Scratch salvearé automat sciptul ach est online. Pentru salva ce allucrat cind eft ofine, lic Fl" sselecteazd, Save As Adauga un dragon care scuipa flacari Acum, ca pisica poate sé alerge mouse-ul, fa un dragon care sa urmareasca, pisica. Nu lasa dragonul sa prinda pisica, altfel aceasta va fiarsa de flacari. Adauga acest script la actorul dragon. Fa clic pe butoanele codificate pe culori din paleta de blocuri ajutorul céruia poti adiuga un actor din bibliotecd. e Fa clic pe el, alege categoria,Fantasy” din meniulde "qe Pentru a selecta blocurile de mai jos, apol trage Deasupra listel de actori se gaseste un buton cu la stanga si selecteaza Dragon’: Fa clic pe butonul blocurile in zona de scripturi, Dragonul va fugari OK" din partea dreapta jos a ecranului, ‘acum pisica. Foloseste meniul " aaa G Newsprite: @ / Ascunde si arata Pentru a face un actor sa dispar’, ae foloseste blocul ,hide”, Cand esti gata 8 il arati din nou, foloseste blocul show", Aceste blocuri se gasesc in secfiunea,Looks" din paleta de blocur Y Pisica disparuta Incearcd acest script folosind actorul pisicd. Aceasta dispare si reapare, dar continua s8 se iste, chiar si atunci cand nu 0 poti vedea. Acest bloc ‘ascunde pisica Acest bloc roteste pisica in sensul acelor de ceasornic Pisica se migca gi atuncl cand este ascunsa Acest bloc arata din nou pisica Foloseste biocul chide" pentru a face actorlisa dispara din jocuri \ 38-39 Cum si faci lucrurie sa se miste (Cum s&trimiqi 70-71) mesaje a "o | Selecteaza un actor din list’. | Faclic pe butonul, i” de pe acesta pentru a deschide panoul de informatii. Aici po folosi si optiunea, show" pentru | | | | | | a arata sau a ascunde un actor. Gpritel not 8 can dragin player: show: ‘rat un actor ascuns » gi & s DE-A V-ATI ASCUNSELEA aa Dimensiuni si efecte ipturi . Alege tipul de efect din sehimbs Scripturile pot fi folosite pentru a schimba ‘meniul extins. Efectul de numerele din dimensiunea unui actor si a-i adduga efecte. spixelare” face actorul si blocuri pentru 0 . ‘nu para foarte clar a stabili cat de puterniceste Introdu numere pozitive pentru a face actorii mai mari si numere negative pentru a+ face mai mici unefect Numerele mai mari fac actorii mai mari, iar ‘numerele mai mici fac Fiecare culoare este 8 se micsoreze. 100 reprezentata de un este dimensiunea ‘numar.Schimba ‘numarul pentru ormala A Schimbarea dimensiunii unui actor Reseteazs A Adaugarea efectelor grafice a stabil culoarea ‘Aceste dous blocuri pot fifolosite pentru toate Efectele grafice din Scratch pot i a face actorii mai mari sau mai mici, fie efectele: folosite pentru a schimba infatisarea printr-o proportiestabilit fie printr-un actorului sau pentru a-i modifica forma. procent din dimensiunea lul Te poti distra facand experimente. Utilizarea efectelor pentru teleportare tue tnd unde am ‘Adauga un actor fantoma din categoria ,Fantasy" oaantwiel a bibliotecii de actori si creeaza scriptul de mai jos. Acesta face fantoma sa pard cd se teleporteaz cand faci clic pe ea. Efectul,fantoma' face actorul si dispard treptat; repetand acest bloc de 20 de ori, actorul va disparea complet Blocul Operators” selecteazé o pozitie Acest bloc orizontalé la selecteaza o Intamplare pozitie verticals la intamplare Acest bloc face fantoma sa se miste incet, ascuns vederil Folosind acest bloc, vel face actorul s8 reapard incet 2 INCEPE CU SCRATCH Evenimente Blocurile maro,Events” din Scratch deruleaza scripturi Camsk ia 704719 cand se petrec anumite lucruri. De exemplu, cand mesaje utilizatorul apasa pe o tasta, face clic pe un actor sau foloseste o camera web sau un microfon. Depistare s1 66-67 ) detectare Cand dai clic Un script poate fi adaugat unui actor pentru a+ face sa execute o anumit actiune, daca se face clic pe actor atunci cand ruleaz programul. Fa experimente cu diferite blocuri pentru a vedea ce poate Un eveniment este un lucru care se intampla, cum ar fi apasarea unei face un actor pe care se da clic. Trage acest bloc taste sau un clic pe steagul verde. Blocurile care gestioneaz eveni- din meniul “Events” penteu mentele se duc in partea de sus a 4 porni scriptul scriptului, Scriptul asteapta pana ce evenimentul are loc §i apoi ruleaza. ‘Actorulpisicé are deja acest efect sonor atasat A Clic pe un actor Acest script face actorul pisicd 38 miaune cand dai clic pe el. Cand apesi o tasta Programele pot fi concepute pentru a reactiona atunci cand diferite taste de pe tastatura sunt apasate. Pentru oalti modalitate de utilizare a tastaturii, care este mai buna pentru crearea de jocuri, vezi paginile 66-67. Alege Alege tasta aici ‘asta alct Schimba textul alc A Spune salut ‘Adauga acest script unul actor si, atunci cand se apasd pe tasta H, actorul va spune,Salut!” A Spune la revedere Acest script foloseste tasta G pentrua face un actor sa spuna,La revedere!" Evenimente sonore Tn cazul in care computerul are un microfon, actorii pot detecta cat de puternice sunt sunetele dintr-o incapere, pe o scara de la 0 (foarte incet) la 100 (foarte tare). Foloseste blocul,when loudness >10" pentru a face scriptul si porneasca atunci cdnd sunetele sunt destul | Scratch cere permisiunea pentru | atifolosi camera web si | microfonul. Cand apare caseta, : ic pe, Allow’. de puternice. eee) Fa pisica sensibild la zgomot Striga la pisica Incepe un nou proiect si adauga imaginea Striga in microfon - pisica va sari de fundal,room3" din biblioteca de fundalurl. din scaun speriata si va mieuna. Va réspunde Trage actorul pisicd pe scaun si adaugai scriptul sila muzica sila alte sunete, daca sunt destul infatisat aici de puternice. Schimba rnumarulin 40 : ms oa A Acesta face pisica 8 cada la loc Detector de miscare pumdatin 40 prin camera web Daca ai o camera web, aceasta poate fi folosita si cu Scratch. Adauga acest script oa eee ee eee jetecteazé miscarea la pisica id jeand fvel face din mana prin Foloseste blocul ,when loudness > 10°. Fa clic pe meniu camera web, pisica va mleuna. pentru schimba,loudness" in,video motion’. Scriptul va porni cand te misti prin jur destul de mult. Alege fundalul Un actor poate reactiona la schimbarea Bea fundalului. De exemplu, poti avea un fundal care face actorul sa dispara. Incarca un nou fundal din lista scenelor, din partea stanga jos a ecranului, apoi adauga blocul ,when backdrop switches to backdrop!” pentru a face aceasta. ‘Ascunde actorul cind se schimb& fundalul INCEPE CU SCRATCH Bucle simple ea complexe O bucla este o parte care se repeta a unui program. Ree niassasy Blocurile de bucla (din sectiunea ,Control”) spun Scratch Python ce blocuri s repete si de cate ori. Ne scutesc sa mai adaugam aceleasi blocuri iar si iar. Elibereazé blocurile n aceasta bucla pentru a epeta actiunile la nesfarsit Bucla forever Orice ai pune in interiorul blocului,forever” se va repeta la nesfarsit. Nu exista optiunea dea lipi ceva la final, pentru ca bucla,,forever” nu se termina niciodata. A Vegnicin bucld Cae actiunile se Nuexisté optiunea de ‘a adauga mai multe Cand se terming ultimul bloc tarmind program blocuri Scratch din bucla, bucla se intoarce din merge din nou la nou la inceput. inceputul buctei Repeat loop Pentru repeta o actiune de un anumit numar de ori, foloseste blocul repeat 10”. Schimba numarul din acesta pentru a stabili de cate ori se va repeta bucla. Adauga actorul ,Dinosaurl “ la un nou proiect si creeaza-i acest script. eTDe ying minte Blocurile de bucla au forma unor falei.Elibereaza blocurile pe care vrei si le repeti in falci, astfel incat ucla si se lege in jurul lor. Cu cat adaugi mai multe blocuri, cu atat se vor intinde falcile pentru a le ‘Actorulseridicdin picioare face loc. Schimb& numarul in 3 Actorul sta Inte-un picior Poti adsuga mal multe blocur | A Dinozaur dansator dupa o bucls, repeat” Cand faci clic pe steagul verde, dinozaurul danseaz’. [si repeta | migcarile de dans de trel ori a. BUCLE SIMPLE Bucle in cuib Buclele pot sa fie si in ,cuib’, cea ce inseamna c pot fi puse una in alta. In acest script, dinozaurul isi termina dansul mergand in stanga si in dreapta si gandindu-se pentru un moment. Cand si-a recdpatat suflul, danseazi din nou si se opreste doar cand faci clic pe butonul rosu de oprire. Pane niste muzica Tinbud! Fi clic pe steagul verde de deasupra scenei pentru a porn scriptul D> Bucle in bucle Aceasta bucla,forever" are cateva bucle care se repeta in interiorul el. Asiguré-te c blocurile se afla in interiorul buclelor corecte, altfel programul nu va funetiona cum trebuie. Blocul,forever* inconjoara totul Miscarea de dans anterioaré (vezi alaturi) Dinozaurul se mised trei past ladreapta Acest bloc creeazi oscurté pauza Dinozaurul se misc trel pasi lastanga Serle ce doresti sa gandeasca dinozaurul ~ Ccuvintele vor aparea into bul’ ad Sauer Creioane si testoase Fiecare actor are un creion care poate trasa 0 linie in spatele acestuia, oriunde se deplaseaza. Pentru a crea un desen, activeaza creionul si apoi misca actorul pe scena, ca si cum ai misca un creion pe harti Blocuri cu creion Blocurile verzi inchis sunt folosite pentru a controla creionul. Fiecare actor Activeaz’ Dezactiveazd are propriul creion, care poate fi activat al au folosind blocul,pen down" si dezactivat folosind blocul,,pen up", Dimensiunea si culoarea creionului pot fi si ele schimbate. Sterge toate Lasa o imagine desenele actorulul A Joacd-te cu creioanele Fa experimente cu modalitatile in care pot folosi blocurile referitoare la creion pentru a desena, Deseneaza un patrat Pentru a desena un patrat, pune, pur si simplu, ‘Actorul va lisa creionul jos pe scena si apoi misc actorul in forma Oline in ural de patrat. Foloseste o bucla pentru a trasa cele patru laturi si a intoarce la colturi. Traseazd o latura ‘a patratulul ‘Activeaza crelonul > Schimba forma oral Acest cod va desena un ptrat. Pentru a desena un triunghi, schimba bucla stepeat! ca sé repeti de tel of, pentru cele tei latur, ere modifica intoarcerea de la savericese 90 la 120 de grade. intampla 7 ot ey CREIOANE $I TESTOASE Scrie pe cer In acest program, controlezi un avion. Cand va zbura, va lasa o dara de fum in urma lui, astfel incat vei putea desena ceva pe cer. incepe Poti folosi doar culori 4 . . a 5 care apar pe interfaja un nou proiect si adauga actorul avion, apoi si acest script. area selecta rosu, fcc in patrat si apol pe butonul rosu de deasupra scenei D la-tizborul Foloseste tastele stanga si dreapta pentru a intoarce avionul. Activeaza furl cu tasta 42" si dezactiveazé-l cu tasta,2" Apasa pe tasta de spatiu pentru a sterge cerul Face linia ‘mal groass Pastreaz’ Pastreaza avionul avionul deal pe scend Rotatiela = dreapta Rotatiela —S= stanga ee ‘Activeaza creionul Sterge urma trasat8 de creion Utilizarea actorilor pentru a dese- na se numeste ,grafica festoasei Si aceasta pentru cd exist un tip de robot care se numeste testoasa si care poate fi miscat pe podea pentrua trasa desene. Primul limbaj de programare care a folosit grafica testoasei se numea LOGO. Variabile — in programare, 0 variabila este numele dat locului Spat ives-109) unde poti stoca informatii. Acestea sunt folosite pentru a-ti aduce aminte de lucruri precum scorul, numele jucdtorului sau viteza unui personaj. Crearea unei variabile <1 Stocarea datelor Poti crea o variabila pentru ao folosi in program perauiele sie utilizind sectiunea ,Data” din paleta de blocuri. touadere Odatd ce a fost creat o variabild, in paleta de frapmente de informati blocuri apar noi blocuti, gata sa le folosesti. pentru a le folosi in programul téu. Creeaza o variabi 3B) Numeste noua variabi Mal intai, f clic pe butonul Data’ din paleta de Dé un nume variabilei care te va ajuta 58 iti blocuri. Apoi, selecteaza butonul,Make a Variable” aduci aminte ce face. Selecteazé ce actori vor - folosi variabila, apo f& clic pe,OK™. scripts Costumes Sounds ” Introdu aie | cate ‘Alege daca variabila va fi Events vated folositi de tot actori sau Control doar de cel selectat Faclicpe ) New Variable baton lovertors ~ mee ata" ri \ vere Blocks | Variable name: >| steps —j @ Forallsprites © Forthis sprite only (Make a Variable 1D Cloud variable (stored on server) | Gees OK) (Cancel Clic aici pentru acrea ovariabil 5 eee Bifeaz8 pentruaarata Blocul variabilei poate fifolosit variabila pe scenss {in interiorul altor blocuri ee oe See Este creatd o noua variabila Odata ce a fost creatd o nous variabila, in paleta de blocuri apar nol blocuri, Meniurile din aceste blocuri te lasa Ae 8 selectezi variabila la care se aplic’ ‘atiabilefolosind acest acestea, dacd ai creat mai mult de una, bloc. Un numarnegativ iva seidea valoarea VARIABILE aye Utilizarea unei variabile Variabilele pot fi utilizate pentru a schimba viteza unui actor. Acest script simplu iti arata cum. Seteazé valoarea unel variabile ‘Schimbarea valorii unei variabile Creeaza acest script. Foloseste blocul, set steps to 0" Utilizeazé blocul change steps by 1” pentrua creste sischimb& numérul in 5.Trage blocul move 10 steps"in_valoarea variabilel,steps” cu 1. Pune-l in interiorul blocului script, dar las8 blocul variabilei,steps” peste 10". forever’ ca pisica s8 devina incontinuu mai rapid. Acesta seteazs valoarea vara Variabila,steps" steps" las continua s8 creascd pe rmasurd ce bucla forever" merge ‘Aici,,steps"Inseamna 5, dup fa infinit cum a fost stabilits valoarea eed *, ‘Stabileste-mivitera folosindblocu,set $tergerea variabilelor Cand nu mai doresti o variabild, fa clic dreapta pe ea in paleta de blocuri si apoi selecteaz ndelete variable” Vei pierde informatiile din aceasta. Unele variabile sunt setate de Scratch si nu pot fimodificate. Cu toate acestea, sunt tot variabile, pentru ca valoarea lor se modifica. Aceste blocuri sunt cunoscute sub numele de,sensing blocks” Make a Variable oe Mets auis honese Stabileste distanta pind fa un anumit lucru, cum ar fi cursorul mouse-ului. Raporteazé numarul costumului pe care i poarta actorul Iti spune in ce directie se deplaseaza un actor. e __INCEPE CU SCRATCH Matematica ee Pe langa stocarea numerelor in variabile (vezi pp. 50-51), eae a Scratch poate fi folosit pentru a efectua tot felul de calcule utilizand blocurile ,,Operator”. Adunari Exist patru blocuri,Operator” care pot fifolosite pentru a face Cea calcule simple. Acestea sunt A Adunarea A Sedderea adunarea, scderea, inmultirea Blocul,+" aduna cele dous Blocul,- scade al doilea siimpartirea. rnumere din bloc. rnumar din primul Blocul. think este flosit pentr a tiparirezultatele A Tiparirea rezultatelor A Inmuttire A impartire ‘Trage un bloc,think" in zona scriptutilor si elibe- Computerele folosesc Nu exista un semn pentru impar- reazA un bloc,+" in aceasta, Adun’ dou’ numere "pentru inmultire, pentru cd _tire pe tastatur3, asa ca Scratch si priveste cum actorul se gandeste la rspuns. ox" seamana cu o litera, foloseste in schimb simbolul./". i iabild ssa, Rezultate intr-o variabila z la Pentru calcule mai complexe, cum ar fi stabilirea SS eee | pretului de vanzare al unui obiect, in loc sa aval dete, folosesti numere, poti utiliza valoarea unei * variabile intr-o suma. Rezultatul poate fi stocat Mf siel intr-o variabila. Creeazé variabile Stabileste pregul Mergi a sectiunea,Data” a Selecteaza blocul.set paletei de blocuri si creeazé doua price” gi fixeaza pretul unui Fonte nent variabile -,sale price” si,price" obiect la 50. ‘cascada pentru aselecta,price” Calculeaza pregul de vanzare Foloseste acest script pentru a calcula jumatate din preyul ‘rage vatiabila, price” in unui obiect $i fixeaza-| ca pret fereastra pentru a imparti Adauga blocul.¥/" de vanzare, preful la 2 {ninterionulbloculul set sale pice” Numere aleatori Blocul,,pick random" poate fi folosit pentru a selecta un numar la intamplare intre doua valori. Acest bloc este util pentru a arunca zarurile intr-un joc sau pentru momentele in care doresti s4 combini costumele unui actor. Cum vezi lista . Daca selectezi caseta de langa list SEARLE EXBERT: scons, Poti wedea Fecare cuvantMOUPe “Aceste blocuri pot fifolosite pentru a schimba continutul unei | liste. Flecare obiect dintr-o lista are un numar- primul obiect | | este numarul 1 siasa mai departe. Numerele pot fifolosite | | pentru a inlatura, insera sau schimba locul lucrutilor. | Sterge primul masuré ce este adéugat la lista. ‘biect din lists | fads chery | caprimaloblect. Seratchyne | | socoteala pumarulul de cuvinte adaugate lalists primul obiect| din lista cu ' cherry* = 2 a INCEPE CU SCRATCH Coordonate Pentru a pune un actor intr-un loc anume sau pentru a-iafla localizarea exacta, poti folosi coordonatele. Acestea sunt o pereche de numere care indica pozitia unui actor pe scena folosind o grila x si y. 38-39 Cum sa faci obiectele i se miste (52-53 Matematicd L sare . =} Pozitiile x si y 240. y: 180 | Pozitille x siy ale unui actor si ale mt cursorului sunt aratate pe interfata = ee ee ee inane . ‘cordonatele cursorului sunt afgate in pa Scratch. Este util sa stii coordonatele unui dreapta jos a scenei. Deplaseaza cursorul peste scena actor atunci cand scrii un script. sipriveste cum se schimba coordonatele. <| Arata coordonatele pescena Selecteaz’ casutele din in coltul din dreapta sus, dreptul blocurilor,x position” | al zonel scripturilor. sisy position” pentru a arata S pozitia actorului pe scena, ¥ QQ < Portia unui actor | Poti vedea coordonatele actuale ale unui actor Grilax siy (‘mm Gnnited Pentru a indica un loc, numara pasii la [brated ones) stanga sau la dreapta $i sus sau jos, pornind | din mijlocul scenei. Pasii la stanga sau la dreapta sunt,,x’. Pasii in sus sau in jos sunt uy” Foloseste numere negative pentru a te misca la stnga sau in jos. | (e100 :109) © 120 0c 10,50) “180-120 -60 Scena se bazeaza pe oatilaxsly 60 120 (4:90,y:—130) 6 -190,y.-150) ‘Acest actor se afl la 190 de pasl la * 180 stanga (-190) sila 150 de asl in jos (150) fayé de mijlocul scenei om me COORDONATE son / a Cum misti actorul een i mised actorin sus 5 Coordonatele sunt folosite pentru a misca un actor . | ii const intr-un anume loc de pe scena. Nu conteaza cat de negative migca in jos aproape sau de departe este acel punct. Blocul ,glide sila stanga 1 secs to x:0 y:0" din sectiunea,,Motion” a paletei de blocuri face actorul s4 alunece usor. x 4@ » +x Schimbé numerele coordo- natelor pentru a face actorul eB 8 mearga in alté parte Migca actonul == Misc spre mijjocul seenei = insus, A Controleaza actorul cu un script A Schimba x si y separat i raseul pe careil va Aceste blocuri pot fi folosite pentru uurma actorul cind vei rula scriptul? a schimba x fra schimba y si invers, pie ates Incearca si vei vedea! de sus. scenei Traseul calutului nebun Incearca acest script amuzant pentru a testa coordonatele. Selecteaza actorul,,Horse1” din lista de actori si atribuie-i scriptul de mai jos. Acest program foloseste blocul ,go to x:0 y:0" pentru a misca incontinuu céluful intr-o pozitie la intamplare, trasand o linie in urma acestuia pe masura ce se deplaseaza. Acest bloc traseaza olinie in turma calului cand el se misc Acest bloc din meniul ,Operators” selecteaza © pozitieorizontalé la intamplare Selecteaza o pozitie vertical la intamplare 58 Ze pan : 38 incere cu scraren Sa facem zgomot! — Daca preferi, poti adauga sunete programelor Scratch. — an Foloseste blocurile roz,,Sound” pentru a incerca efecte mayhem de sunet si a crea muzica. Poti folosi si fisierele de sunet pe care le ai deja sau poti inregistra sunete nou-noufe pentru programul tau. Adauga sunete actorilor ee eae Pentru a reproduce un sunet, acesta trebuie O 2 veces buroanele adaugat unui actor. Fiecare actor are propriul set opto] peas _\ sunete. Pent a, f8 clic pe sectiunea -—— ay de ualle controler pe ‘it Seri ripts Costumes: Sounds Sounds" de deasupra paletei de blocuri. lc a. Fa dlicald pentru New sound: selene soot if dinbibotec Sertch we ea NI Ld - Incarcé o inregistrare Inregisteazs un sunet cincoriner folosind microfonul Redarea unui sunet Da mai tare Exista doua blocuri care redau sunetele: | Fiecare actor are propriul control al volumului, »play sound” si,play sound until done*.,Until j care este stabilit cu ajutorul numerelor. done" face programul s& astepte panace Oeste cel mai redus, iar 100 cel mai ridicat. sunetul s-a terminat inainte de a continua. | naeneniamans volumul maxim | Foloseste meniul pentru a alege ce sunet sé redai Acest mee face actorul mai zgomotos sau mai ticut — foloseste un numar negativ pentru a: face mai tacut Bien ceasts csuts Urmatorul bloc din script nu va redat sunetul ,miau’ Compune-ti singur muzica atch are blocuti care pot fi folosite pentru a inventa sunete muzicale. Ai o intreaga orchestra de instrumente pe care sa o dirijezi, dar si un set de tobe. Lungimea fiecdrei note este masurata in beats. Acesta decide cat de acuta sau de grava este nota Numerele mai mari fac nota mai lunga. Poate fi si mai scurta de un beat, ca in imagine Foloseste acest meniu pentru aalege dintre dferitele tipuri detobe Redarea muzici Poti compune o melodie imbinand armonios notele. Creeazé 0 noua variabila numita ,note” (vezi pp. 50-51) si apoi adauga scriptul de mai jos oricdrui actor pentru acrea o bucata muzicala. ‘unei note" variabile Alege un instrument ‘Adauga o bucla sforever"in jurul acestor doua blocuri Trage variabila note” din secyiunea ,Data* apaletel de biocuri A Scaréin crestere Acest script face o serie de note care sunt redate cénd se face clic pe steagul verde. Indltimea fiecarei note creste cu cate o treapta de fiecare data, iar fiecare nota este redata timp de jumatate de beat. SA FACEM ZGOMOT! a ae 59. oe Faclic aici pentru aalege un instrument dintr-un ‘meniu in cascad& ‘Acest bloc adauga o pauza. Daca maresti numarul, pauza vai mailunga. Viteza muzicii se numeste tempo. Tempoul decide cat de lung este un beat intr-o bucata muzicala, Exista trei blocuri care administreazé tempoul. Tempoul este masurat in beats pe minut sau ,bpm'. reste tempoul pentru a face muzica mai rapida sau foloseste un numa negativ pentru ao face mai lents. | Bifarea acestei casute face tempoul | actorului si apard pe scend. l Da cu zarul Programele simple pot fi si utile si distractive. Acest program creeaza un zar care poate fi rostogolit. Joaca-| pentru a vedea cine obt scorul cel mai mare sau foloseste-| in locul unui zar adevarat cand joci un alt joc. (50-51 Variabile (52-53 Matematics Cum sa creezi un zar Zarul din acest program foloseste sase costume. Fiecare costum arata o fata a zarului cu un numar pe ea - de la unu la sase. ae: Selecteaza butonul pensula de sub scen pentru a desena un nou actor. b {_Newsnrte ohne) Deseneaza un actor nou Ons) SPAT DE EXPERT. | Sub zona de desen se afla comenzile de culoare. Fa clic pe dreptunghiul solid pentru a desena un bloc de culoate solids. F3 clic pe dreptunghiul gol pentru a desena conturul unui patrat sau dreptunghi. | Foloseste cursorul pentru |_aschimba grosimea liniilor | patratului. Pentru a alege | plu, | Schimb grosimea unel lini folosind cursorul o culoare, , pur clic pe ea. Fé clic pe butonul dreptunghiular din st8nga zonei de desen. Pentru a colora zarul, selecteaza o culoare solids din paleta (vezi caseta de mai jos). Apoi, in suprafata de desen, tine apasata tasta shift’, apasi pe butonul din stanga al mouse-ului si apoi trage cursorul pentru a desena un patrat in mijloc. = Féclicpentue — Faclic pentru un bloc schit8 a bloculul__de culoare solid Butonul dreptunghiular traseazd un patrat cand se apasé tasta, shift” Foloseste-| pentru asselecta o culoare rent Faclic pe aceasta, casetd pentru mai multe culori Alege o culoare din paleta de culori d Fa clic dreapta pe costum in stanga zonei de desen si alege ais, 5 BSumulaeay | entra facezarls8 parce | duplicate ® rostogoleste cand se ruleazé scriptul, pot roti fiecare costum intr-un unghi diferit. Fa clic pe butonul Convert to vector” din coltul din dreapta jos. Cand faci din nou clic pe zona de desen, va Selecteaza un costum. Fi clic pe aparea un instrument de rotajie. | butonul rotund de pe suprafata de Fadliesit desen si alege culoarea alba solid’ din tL eae a vot | zarul | palet’. Adauga pete fiecéruia dintre . j ~ cele sase costume pnd ce realizezi toate cele sase fatete ale zarului Butonul rotund face un cere perfect (Cand apesi pe bara de spativ, zarul se ostogoleste andeste spits taste —eostumest | are buline | Adauga scriptul de mai jos actorului zar. Apasa pe bara de | L | spatiu pentru a rostogolizarul,Incearca de céteva ori pentru a verifica daca se pot vedea toate cele sase costume. oS Acest bloc selecteazs Uneori, vei obtine de doua ori acelasi numar si se pare c& programul tun costum la intamplare & nu merge pentru cd imaginea nu se schimba. Acest script face zarul s8 schimbe de cinci ori costumul inainte de a se opri. De flecare data cand apesi pe bara de spatiu,arata c& zarul se rostogoleste. Fiecare costum este un ‘numa diferit de pe zar Pauza scurta pentru,a vedea cum se rostogoleste zarul Nu ita sales! ceailucrat Adevarat sau Computerele decid ce sa facd punand intrebari si stabilind INCEPE CU SCRATCH fals? — area 118-119 daca raspunsurile sunt adevarate sau false. Intrebarile deciailor care au doar doua raspunsuri posibile sunt numite »expresii booleene”. Compararea numerelor Poti compara numerele folosind blocul rspunsuri ED oe. Acest bloc va da unul din doua \devarat” dacd cele dous =" din sectiunea ,Operators” aflata in rnumere din casete sunt egale, s.fals” paleta de blocuri. Numerele sunt egale, asa cain bula de dialog apare cuvantul ‘rue! (adevrat) — Compararea variabilelor Poti folosi variabilele din interiorul blocurilor de comparare. Nu merita s4 compari numere fixe pentru c& rezultatul va fi intotdeauna acelasi, in timp ce valoarea variabilelor se poate schimba. 2 Creeazi o varia Fa clic pe butonul ,Data" din paleta de blocur si creeaza o nous variabilé numita ,age" Stabileste-i valoarea la 10 {f8 clic pe bloc pentru a te asigura Testand daca un lucru este adevarat sau fals, vei putea folosi aceasta informatie pentru a spune computerului ce s& facd mai departe. Va executa o actiune diferita, in functie de raspunsul adevarat sau fals. Trage o expresie booleeana in aceasté fereastrd Luarea deciziilor Blocurile , if" folosesc expresii booleene pentru a decide ce s& faci mai departe. Ca sale folosesti, pune alte blocuri in »falcile” lor. Blocurile din interiorul blocurilor, if” vor rula doar daca raspunsul la expresia booleeana este adevarat. A Blocul ,if-then” Dacd expresia booleeana este adevarata, blocutile dintre falcile blocului,if-then" vor rula. (62-63 Adevirat sau als? ‘Simuri si 66-67) detectie Dacé este fals, locurile din facile else" vor rula A Blocul ,if-then-else” Dacé expresia booleeans este ade- varata, ruleaz8 primul set de blocur. Daca nu, ruleazé al doilea set. Utilizarea blocului ,,if-then” Blocul, if-then” te lasa sa alegi daca sa rulezi sau nu o parte dintr-un script, in functie de raspunsul la o expresie booleeana. Ataseaza acest script la actorul pisicé pentru a face o incercare. ‘Trage blocul = sectiunea Raspunsul este da? Operators” in blocul,if-then’. ‘poi pi acesta. variabila ans (in sectiunea,Sensing*) in Adevarat Fals Acest bloc este plasat in interiorul falllor bloculut sithen’,astfel incdtpisica s8 Tiaune aumai daca rSspunsul ‘este adevarat (,yes") Nu miauna Acesta este sfarsitul blocului,iFthen” A Cum functioneazé ‘Aceste blocur| think” sunt in afara buclei «if-then’,astfel incat tle vor rula oricare ar fl A Cand miaun’ pisica Acest program verificd expresia booleeana si va rula doar partea dintre falcile blocului,if-then” daca este adevarats. Aceasta inseamna ca pisica miauna numai atunci cand fi spui s8 0 faca. raspunsul la Intrebare. Programul verificé daca expresia booleeana este adevarata. Daca da, acesta ruleaza blocurile din interiorul falcilor blocului,ifthen", DECIZII $1 RAMURI Instructiuni de ramificare Adesea, vrei ca un program sé fac un lucru, daca o conditie este adevarata, si altceva, dacé nu. Blocul, if-then-else” ofera un program cu doug rute posibile, numite ,ramuri*. Doar o ramura va rula, in functie de réspunsul la expresia booleeana. Este réspunsul da? V Program de ramificare Acest program are dou’ ramuri: una va rula dac8 raspunsul este da’, jar cealalt8 daca nu este da, Adevarat Fals spune ,llike —— spune ,That's Aceastiramuriva YOU too!” not very tala dacdrispunsul friendly!” Iaintebareestesyes" A Cum functioneaza Programul verificd daca ai scris ayes", Daca da, arata primul mesaj. Daca nu, pe al doilea. Aceasté ramurd va rula dacs raspunsul la intrebare este oricare altul decat, yes" Blocurile cu expresii booleene din Scratch au marginile ascutite. Le poti introduce sin unele gauri care nu au forma ascutita. A Blocuri,,Sensing” | Aceste blocuri pot testa daca un actor atinge | altactor sau daca este apasat vreun buton. | 4\ Blocuri,Control” > Ramuri Cateva blocuri ,Control" au gauri cu forma Ca si ramutile unui copac, ra boolean’, pentru expresii booleene. murile unui program se des- | part sise duc in directiidiferite, CU SCRATCH Simt si detectie Blocurile,Sensing” permit unui script sé vada ce se intam- pla in computerul tau. Ele pot detecta comenzile de pe tastatura, lasand actorii si reactioneze cand se ating. ‘Acest bloc verifica daca este apasata vreotasté, Pot alege ce ast verfce Comenzi de pe tastatura Folosirea blocurilor,,Sensing” cu blocurile,,if-then” iti permit sa misti un actor pe ecran folosing tastatura. Blocul, key Ree eevanica cea sate pressed?” are un meniu al majoritatii tastelor, astfel incat un actor s& poatd fi programat sa reactioneze la orice tasta. Poti, de asemenea, si legi actiunile de clicul unui buton al mouse-ului. A Blocurile,sensing” ‘Adaugarea acestor blocurl intr-un bloc Punerearuturorcomenzilor then” permite programului sa detecteze es criptul verified el daca este apasatd veo tasta sau butonul repetat tastele apasate mouse ull Scriptul verificd dacé sigeata sus este apasata. Dac’ da, actorul se misc pe vertical pe ecran 4 Controlul actorilor Comenzile executate de pe ‘astaturd it ofera controlul precis asupra actorilor, lucru folositor in special in cazul joc a <1 Scriptul de miscare ‘Acest script iti permite s& misti actor In sus, In jos, la stanga sau la dreapta, folosind tastele cu sageti de pe tastatura. SIMT §1 DETECTIE Foloseste acest bloc pentru a identifica ‘momentul in care un actor il atinge pe altul Coliziuni intre actori Uneori, este util sa stii cand un actor il atinge pe altul - de exemplu, la jocuri, Foloseste blocurile ,Sensing” ees bocainis espa pentru a pune lucrurile in miscare lun actor atinge o zona atunci cand un actor il atinge pe aoe altul sau cand un actor traverseaza 0 zona de o anumita culoare. Utilizarea blocurilor,Sensing” Foloseste blocurile,Sensing” pentru a transforma o pisicd pe care 0 poti controla intr-un joc. Incepe prin a adauga scriptul de miscare creat la pagina alaturata actorului pisica, apoi adauga fundalul ,room1" si actorul elefant. Folosind butonul Sounds", adauga efectul sonor,trumpet2" elefantului, apoi construieste scriptul de mai jos. V Gaseste elefantul Acest script foloseste blocurile,Sensing" pentru a controla relafia dintre pisicd si elefant. Pe masura ce pisica se apropie, elefantul creste. Cdnd pisicailatinge, elefantul isi schimba costumul, scoate un sunet si se ascunde in alta parte. Bucla, forever" simte si ‘Aceasta verificé exact ajusteaza dimensiunile catde departe este si pozitia elefantului pisica de elefant Cu cat mai departe este pisica, cu atat mal mic va fielefantul Daca actori se ating, vor rula blocurile din interiorut biocului,fthen* Acest bloc selecteaza un locla intamplare unde s8 se ascunda ‘lefantul lke va UINCEPE CU SCRATCH ~ Bucle complexe Buclele simple sunt folosite pentru a repeta parti dintr-un oo 63 ace oe A (62-63 Adevirat program la nesfarsit sau de un numar de ori. Celelalte sau fals? bucle, mai inteligente, pot fi folosite pentru a scrie programe care decid exact cand sa repete instructiuni. (46-47 Bucle simple In bucla pana se intampla ceva Adauga actorul ,,.Dog1” la un proiect si apoi atribuie scriptul de mai jos actorului pisicd. Cand rulezi scriptul, blocul ,repeat until” se asigura ca pisica se migca in continuare pana ce atinge cainele. Atunci se va opri si va spune Ouch!" A\ Blocul ,repeat unti Acest bloc opreste pisica Blocurile din interiorul repeat 8 stea in cap until’ continua s& se repete pana ce se indeplineste conditia (pisica atinge cainele). Selecteaz’,Dog1* din meniul cascada Aceste instructiunl se tot repet pana ce pisicaatinge cainele -Aceasta se va intdmpla doar cand pisica atinge cainele A Testarea programului ‘Mut8 cainele din calea pisiciisiruleaz’ programul. Apo, trage sida drumul cdinelut in calea pisicli pentru a vedea ce se intampla. Acesta opreste toate cesta opreste doar scripturile inteun scriptul in care se program ‘gaseste respectivul bloc Sto| Un alt bloc,Control" util este blocul ,stop all", care poate opri scripturile din rulare. Este folositor daca vrei s& opresti actorii si se miste la sfarsitul jocului, Acesta opreste celelalte scripturi ale actorulul, dar continua s& ruleze scriptul in care se aflé acest bloc <1 Stoparea scripturilor Foloseste meniul cascada pentru a alege ce scripts fie oprit. a eee, ayegee BUCLE COMPLEXE jn asteptare < Blocuri de asteptare , Blocul. wait secs" asteaptd Este mai usor sa joci un joc sau s vezi ce tun anumit timp. Blocul se intampla intr-un program daca poti jwait until” r8spunde la introduce pauzi intr-un script. Blocuri ceea ce se intampl in diferite pot face un script sa astepte un Program. numar de secunde sau pana ce un lucru este adevarat. Actorul asteapta pind ce se apasa butonul mouse-ulut Actorul asteapts 5 secunde si apoi va yeceva Deindats ce conditia J, Blocul ,wait secs” cneodevrets, Cu blocul,wait secs" pot A, Blocul,,wait until” ‘actorul se misc spre rnumarul de secunde in care doresti Acest bloc asteapté pand ce expresia _cursorul mouse-ulul ca actorul sd astepte. booleeana din el se dovedeste adevarata. ‘ Scriptul se pets pind ce este Mouse magnetic ‘libert but mouse-ulul Bucle diferite pot fi folosite Blocul ,not* detecteaza impreuné pentru a face ‘nd butonul mouse-ului programe. Acest program nu este apasat incepe odat ce se apasa pe butonul mouse-ului. Actorul urmareste cursorul mouse-u- lui pana ce butonul este eliberat. Apoi topaie in sus si in jos de cinci ori. Dupa care se repeta intregul proces pentru cé totul este introdus intr-o bucla forever". _—N Acesta face actorul sB sardnsus oS Acesta face actorul s& alunece in jos [> Buclein cuib Fi atent la modul in care buclele sunt Blocul repeat 5* face puse laolalta intr-un bloc, forever’ actoruls8 topaie In sus s injos de cinci ori =e, os INCEPE CU SCRATCH Trimiterea de mesaje ences lucrurles8 se miste Uneori este util ca actorii si comunice intre ei. Actorii pot folosi mesaje pentru a le spune altor actori ce sa faca. Scratch te lasd sa creezi $i conversatii intre actori. ‘Acest bloc,Events" permite unui actor si ‘rimit8 un mesajtuturor celorai actor! (40-41 Costume (44-45 Evenimente Comunicare Blocurile de comunicare din meniul,Events" SS een nes el le permite actorilor sé trimita si sa primeasc& mesaje. Mesajele nu contin alta informatie in afaré de nume, dar pot fifolosite pent» giocuride comunicare a corecta actiunile actorului. Actori Un tip de bloc de comunicare permite unui actor si reactioneaza doar la mesaje la care sunt trimita un mesaj. Celalalt ii spune actorului sé primeasc programati sé reactioneze, ignorandu-le tun mesaj. Alege un mesaj interesant sau creeazé unul nou. pe celelalte. ‘Acest mesaj deruleaza scriptul ‘care face steaua de mare sa se indeparteze de rechin Alege ,new message. Steaua de mare fuge de din meniu pentru a crea rechin, aratand 3 este acest nume ingpaimantat Acest mesa spune stele Lo demare eb rechnul a pleat, ded se post lntoarce in sigurants A Rechin periculos ‘Alege doi actor un rechin gio stea de mare. Atribuie-i rechinului scriptul de mai sus, iar stelei de mare cele dous scripturi din dreapta. Cand soseste, rechinul transmite un ~ Steaua de mare alunecla lc, in mijtocul mesaj, ceea ce 0 face pe steaua de mare s& se Indeparteze ‘ecranulu, feriits notand. TRIMITEREA DE MESAJE Conversat Pentru a crea o conversatie intre actori foloseste blocurile broadcast message and wait” cu blocurile «say’,ceea ceil face pe actor si vorbeascé folosind (@lgaAestmessaueii andar ‘de dialog, : at actor mamune Abate senate ange Bic de atte fe. Pt peor Acest bloc transmite un mesaj, apoi asteaptt ca maimute, iar cele dous scripturi din dreapta toate scripture care reactioneazs la mesa) $8 celeilalte. termine inainte ca programul si continue. Prima mairmuta Hello: incepe conversafia \ Blocurlle,say" las . actor s8 vorbeasca . folosind bulele de dialog Mesajul hello” activeazs scriptul "S__ Adoua maimuta Gelade a dove iiraspunde rt primeia Cand se termina al doilea script, ‘continua primul ‘Mesajul showareyou' face ‘8 Inceapaal teilea seript A Maimute vorbarete ‘Acest program functioneaza pentru cé foloseste blocul broadcast message and wait”. Daca ar fi folosit blocul broadcast message’, maimufele ar fi vorbit in acelasi timp, 1 ___INCEPE CU SCRATCH Crearea blocurilor Pentru a evita repetarea la nesfarsit a aceluiasi set de blocuri, poti sa folosesti o scurtatura creand noi blocuri (50-51 Variabi Emomentul si 82-83) ‘experimentezi Fiecare bloc nou poate contine mai multe instructiuni. faci propriul bloc Poti sa iti faci propriile blocuri care s& ruleze un script atunci cand sunt fo- losite. Incearca acest exemplu pentru a vedea cum functioneaza. Programa- torii numesc aceste parti de cod reutilizabile,subprograme” sau ,functii". Creeaza un nou bloc Fa clic pe butonul ,More Blocks" siapoi selecteaza ,Make a Block’ Scrie cuvantul,jump" si f& clic pe ,OK". Apare un bloc nou Noul bloc,jump" apare in ——e {scripts Costumes sounds | cates Motion Events Looks Control sound © Sensing Pen Operators Data | [Make a Block Defineste blocul Blocul define” spune Scratch ce blocuri s& ruleze cand foloseste un bloc nou. Adauga acest script pentru a defini blocul. Incepe definirea blocului tau Sare cade Fa clicalch pentru a face unnou bloc \ Defineste blocul Jump" in zona Seripturilor Blocul nou Foloseste blocul intr-un script Noul bloc poate fi folosit acum in orice script. Este ca si cum acele blocuri de sarit ar exista individual in script. Nou! bloc ruleaza scriptul de sarit care 2 fost deja definit __ Asteapta o secunds inainte dea repeta bucla Blocuri cu date Ferestrele dintr-un bloc nou pot fi folosite pentru a-i conferi acestuia numere si cuvinte cu care sa lucreze. Aceste gauri pot fi utilizate pentru a schimba cat de departe este mutat actorul de catre un DIOC. ¢s clic aici pentrua vedea toate optiunile Faun nou bloc F8 un nou bloc numit,slide" si apoi da clic pe Options”, Acum selecteaza Add number input” si Sctie steps" Selecteaza ,Add label text" si schimba in,and shout Fa clic pe,.Add string input” si humeste-1,greeting’. Apoi fé clic pe,OK" Variabila steps Defineste blocul In blocul, define’, glurile sunt inlocuite de variabile numite,steps" si,greeting’ Trage aceste variabile din blocul define" in script, oriunde ai nevoie de ele. ‘Adauga acest script la actorul tau. Foloseste blocul intr-un script ‘Acum adauga scriptul de mat jos unui actor. Punand un numar diferit de Deruleaza seriptul Foloseste un nume simplu asi side saluturl in bloc, pti face actorul cand se apasa pe penta lc ou. bara de spatiu programul sa fie mal usor 8 se comporte diferit. is CREAREA BLOCURILOR age New Block Options [Add number input: ‘Add tring input ‘Add boolean input: ‘Add label text 1 Run without screen refresh Variabila greeting ‘rage varabilele din blocul,define” in script Acest bloc face numérul de pasisa fie negativ ONSITE deat de moat. ‘Actorul alunecd 20 de pag sistriga “Hello” ‘Acum actorul alunecd 80 de paslsistrig How's it going? Monkey mayhem oe Acest joc incitant si rapid reuneste tot ce ai invatat Loses despre Scratch pana acum. Urmeaza acesti pasi (66-67 Simp daca vrei sa iti creezi propriul joc Monkey mayhem sidetectie si vezi daca poti lovi liliacul cu banane! oh w) SEAT DE EXPE Cum incepi Incepe un nou proiect Scratch. Nu ai nevoie de actorul pisicd, aga ca sterge-| facand clic dreapta pe lista de actori si apoi facand clic pe delete” din meniu. Astfel vei ramane cu un proiect gol cu care poti lucra. | Acesta este cel mai mare program | | de Scratch pe care l-aiincercat | | pand acum, asa ca s-ar putea sa afli_| | cajocul nu merge mereu dupa | | cum te-ai astepta. lata cateva | | sfaturi pentru a te ajuta si te %s. Adauga un nou fundal din S| descuc! fara probleme: | | | | | biblioteca de fundaluri. Acest | Stage Asigura-te cé adaugi scripturi | bouton se afld la stanga lstel | ‘backdrop actorului corect. | cuactori. | Urmeaza instructiunile cu atentie. | Aminteste-tis8 faci o variablé inainte Fé clic aici pentru a ad’uga —{ New backdrop: de ao folosi. | ug nou funda} din Verifica daca toate numerele din woman | Nl Jada | Yeeseawone Fa dublu-clic pentru selecta fundalul .brick Fake wall1" Zidul de caramida se potriveste bine I, (Monkey mayhem cu acest joc, dar, daca preferi, poti folosi un Pies eee fundal diferit. Fa dublu-clic pe un fundal din biblioteca de fundaluci pentru a- face sé apara pe scena os = a. MONKEY MAYHEM Mergila biblioteca de 3 actori pentru a adauga un nou actor joculu Selecteazé,Monkey1" din sectiunea,,Animals", Utilizatorul va controla acest actor pe parcursul jocului L_ Clic tei pentru aalege un actor ‘nou din biblioteca Atribuie-i maimutei scriptul de mai jos. Nu uita - toate blocurile 4° diferite pot fi gasite in paleta de blocuri, organizatd pe culori. 7 . In acest script, blocurile Sensing" sunt folosite pentru a misca maimuta prin scené folosind tastele cu sageata de pe tastatur’. 4« » Ruleaza scriptul cand al terminat de verificat daca functioneaza. = Acest bloc,Motion* face ‘malmusa si stea dreapt ie i Tastele cu sageti de pe tastaturd vor face maimuta s8 alerge In stanga slin dreapta Acesta miscd maimuta in pozitia sa de start, in Blocul,Sensing” detecteazs cind partea de jos a scenei este apasatd tasta cu s8geata sting’ 90 face maimuta sa se intoarca spre stanga ‘Acest bloc face maimuta sa para se plimba prin schimbarea costumelor 90 face maimuta sa se itoarc’ spre dreapta, Acesta muta ‘maimuta cu 10 pasi Nu ita salves ceailucat! n..h0U mM ae Me ee INCEPE CU SCRATCH Cum adaugi mai multi actori Maimuta poate fi deplasata acum pe scena folosind tastele cu sdgeti la stanga si la dreapta. Pentru a face jocul mai interesant, adauga actori. Da-i maimutei banane cu care sa arunce si adauga un liliac in care si le arunce! ‘Acesta face bananele Adauga actorul ,Bananas" din sstea drepte de actori, apo atribuie-i acest script. La {inceputul jocului, maimuta va tine bananele. Cand se apass pe bara de spaiu, acestea vor fiaruncate la verticals Stabileste directia pe scena, Bananele apar apoi din nou bananelor spre sus intr-un capat al scenei, de unde pot fi ‘Acest bloc face bananele ridicate iar. viaibile pe scend — vorfi ascunse mai taziu Bananele vor ramane lipite cde maimusa pana ce se pasa bara de spatiu ‘Aceasta buclé misc bbananele in sus, pe scend Acest bloc,ifthen-else" face bbananele s8 reapara fie pe partea dreapts, fe pe cea stngd a scenei, la intamplare Acesta face scriptul si astepte pana ce maimufa ridica bananele a MONKEY MAYHEM — “cee Unntorul pas este sé adaugtun ila carezboardsi (pew venple erage voc 8-1 faci s3 cada la pamant daca este lovit de banane. eet ‘Adauga ,Bat2" din biblioteca de actori, apot creeaz3. | ariablename: [Speed ‘© nous variabils numita Speed” (doar pentru iliac). SS ae variabila va fi folosité doar cuactorul iliac Ca sa creezi o noua variabild, mai intai fa clic pe butonul Data" din paleta de blocuri, apoi selecteazs butonul | © Feratsrtes_@ Fortissprte ony Make a Variable. Debifeaza caseta de langa variabila C1 Cloud variable (stored on server) ,Speed" din sectiunea ,Data’, astfel incat sa nu apara peecran, ‘Adauga scriptul de mai jos tiliacului. In bucla principal .forever',liiacul se mut& intr-o pozitie intamplatoare in stanga scenei,alege aleatoriu o vitez3, apoi se misca in faa sl in spate, pe toata scena, pana ce este lovit de banane. Cand este lovit lliacul cade la pimant. Acesta pastreaz8 actorul iliac la vertical Liliacul porneste din stanga scenei, ao Inceputul buclei principale a iiaculu inalyime oarecare Alege o vitez8 oarecare ‘Acesta face iliacul s& continue ‘se migte pang ce este lovit Trage variabila Speed din sectiunea Data’ In acest bloc Creeazi acest bloc.broadcast” pentru ale spune celoralti actor ca ilacul a fost lovit; va uti ulterior pe parcursul proiectului Stabileste directia liiacului spre jos Face lliacul 8 cada 158 iasd de pe scend Nu ita saved ceallucat! Tusele de final Pentru a face jocul si mai antrenant, poti Creeazi o nous variabila numita,Time" Asiguré-te ci este disponibild pentru tofiactoril din joc, selectand ‘optiunea, For all sprites” Verifica daca este bifats et adauga un cronometru, poti folosi o variabila cAsuta de langa variabila, din paleta de blocuti, astfel pentru tine scorul sia numara liliecii loviti de jucator si poti adauga un ecran de,game over’, care sa apara imediat ce timpul jucdtorului a expirat. i F8 clic pe imaginea micd a scenei din lista de scene, apoi selecteaza butonul,Backdrops" de deasupra paletel de blocuri Fi clic dreapta pe fundalul existent pentru a crea un duplicat. Adauga cuvintele, GAME OVER" noului fundal. F8 clic pe butonul, Scripts Instrumentul de text pentrua scrie pe fundalul duplicat siadauga acest script scenel pentru a declansa ‘cronometrul. Cand incepe cronometrul, declanseaza co bucla de numaratoare inversa. Cand bucla se termin8, apare ecranul GAME OVER" $i jocul ia sfarsit. Incheie jocul Ecranul de game over incat jucdtori s8 poata vedea timpul afisat pe scen’. Foloseste vaardta cam asa Acesta stabileste limita de timp la 30 de secunde Numara invers pana ce cronometrul ajunge la zero Face schimbul cu fundalul ,GAME OVER" Fa clic pe actorul banane din lista 1} de actori. Creeaz’ 0 nous variabila Score" gif8-0 sé fie disponibila pentru tofi actor -Mutd scorul in partea dreapta sus a scenei,trigandurl in acea zona. s.,_ Adauga acest script scurt actorull 12. banane. Acesta seteaza scorul la 0, Ia inceputul joculu Face bananele 8 dispara Acesta reseteaza scorul fa. Incontinuare,adauga muzics 14> jocului. Fé clic pe scena si =” Selecteaza butonul, Sounds de deasupra paletei de blocuri incarca sunetul egg: din biblioteca de sunete ‘Adaugé sunetul.eggs" dela butonul,Sounds" va fi redat in bucla, dar se va opri cand blocul ‘Adauga scriptul de mai jos scenei, Sunetul eggs" 5 stop all inchele jocul. ‘Muzica de fundal este repetata Selecteazs caseta pentru a aréta 7 MONKEY MAYHEM ‘5... Adauga acest scripts actorlor banane, Cand ‘13. bananele lovesc lliacul, se aude un sunet, scorul © creste cu 10 si bananele sunt ascunse. ‘Adauga sunetul,pop” din biblioteca de sunete a actorul bbanane (vezi pp. 58-59) De flecare data cand este fovitiliacu,jucstorul castiga 10 puncte JINE MINTE Felicitari — ai creat un joc complet Scratch. lata cateva dintre lucrurile pe care le-ai realizat pana acum: fécut un actor s8 arunce cu obiecte intr-un alt actor. facut un actor sa dispara de pe scend odata cea fost lovit. Ai adaugat o limita de timp jocului i adaugat muzicé de fundal care se aude atata vreme cat jocul continua Ai adaugat un ecran de game over care apare la finalul jocului, Nu la saver ceailucat! 80 INCEPE CU SCRATCH MONKEY MAYHEM E timpul sa te joci Acum jocul este gata pentru a fi jucat. Fa clic pe steagul verde pentru a incepe si avedea de cate ori poti sa lovesti liliacul cu bananele inainte ca timpul sa expire. Tasta cursor Tasta cursor stanga dreapta 1 — Bara LoL despatiu A Comenzi Ghideazs maimuta la stanga sila Pentru a face dreapta cu tastele cursor de pe jocul sa dureze mai mult, Incearca s8 cresti limita ‘de timp tastaturd. Apasa pe bara de spatiu pentru a arunca cu banane in liliac. SEAT DE EXPERT | Pentru a adauga mai mulililieci care si fie tinte, | faclic dreapta pe liliacul de pe lista de actori si | selecteaza ,duplicate”. Va aparea un nou liliac cu toate scripturile pe care le are si primul. Incearc’ 8 adaugi i alti actori care zboara: 1, Adauga un actor din biblioteca de actor Hipopotamul zburator (,Hippo1”) este minunat. pentru acest joc. 2. Fa clic pelliliac din lista . de actori 3. Fé clic pe scriptul .culul si sine butonul mouse-ulul apasat. 4, Trage scriptul liliaculut pe noul actor din lista. 5. Scriptul se va copia across pentru noul actor. Alege un nou Pentru a face jocul mal titlu pentru joc si dificil fliliacul 8 se serial miste mai repede a - ‘mi! (Untitied V_— ty abc sare) MONKEY MAYHEM 81 Incearca diferite Joaca jocul de tel ori fundalur gi vezi sivezi cét de mare poate cum arata jocul —~ fi scorul pe care il obi oprire pentru a termina Jocul mai devreme _— Poti edita programul pentru 2 oferijucdtorului mai multe puncte pentru fiecare loviturs _— Pentru face jocul mai ‘greu, Incearca s schimbi codul casi faci bananele 8 se miste mai incet, — Incearca sa schimbi maimuga intr-un alt Remixeaza proiectele existente cy (© modalitate grozava de a invita este Poti imbunatati profectele de pe site? studierea altor programe. Uita-te cu Scratch te lasé s8 adaugi noi lucruri atentie la proiectele de pe site-ul web si apoi s8 it faci publicd versiunea, Scratch. Ce pofi invita din ele? Rucsacul eee Rucsacul (backpack) iti permite sa a copia un script sau un actor depozitezi scripturi, actori, sunete si ‘nrucsac costume utile si sé le folosesti de la un proiect la altul. Se gaseste in partea de jos eer a ecranului Scratch. bo D> Trage sida drumul Poti trage actors scriptur in rucsac si lA , poi ssl adaugil ate protect unactor (7 in rucsac sprite — = = ETIMPUL SA EXPERIMENTEZI 83 i Ajutor! a Poate fi greu sa scrii un program dacé nu stii nimic despre unele blocuri pe care le-ai putea folosi. Scratch are un meniu de ajutor | (Rum) CS/Meares)) 99) pentru a se asigura ca intelegi fiecare bloc. Intoarce la stanga Ajutor pentru blocuri Pentru a afla mai multe despre un anumit bloc, clic pe butonul ,block help" de pe bara de instrumente cursor din partea de sus a ecranului, Fereastra de ajutor EEE ‘explicé fiecare Acesta este butonul bloc wblockhelp” —Cursorul se ee oa wed Cursorul se va transforma ee | intr-un semn de intrebare. Foloseste-| pe blocul despre pentru a face clic pe blocul despre Garavrel¥ ofl | | Serie numarul de grade la care vrei sa se roteascd actorul. By Fercaste de ajuter Se deschide pentru a-ti spune ‘cum functioneaza blocul, cu pon- turi despre cum poate fi folosit. (Daca scrii un numar negativ, actorul se va misca in directia opusa.) invata un alt limbaj Acum, stapanesti destul de bine primul limbaj de programare. Invatarea altor limbaje te va ajuta sa scrii diferite tipuri de programe. De ce sa nu incerci mai departe Python? Ceea ce ai invatat deja despre Scratch te va ajuta sd intelegi repede Python. D> Similar cu Scratch Si Python foloseste bucle, Variabile si ramuri. Utilizeaz’ cunostintele despre Scratch pentru incepe Python! Joaca-te cu Python TE CU PYTHON Ce este Python? 7 Pyth Python este un limbaj de programare bazat pe text. | Dureaza ceva mai mult sa il inveti decat in cazul Scratch, simple dar poate fi folosit pentru mai multe lucruri. Comenzi mai 104-105 ) complicate Un limbaj util Python este un limbaj versatil, care poate fi utilizat pentru a face multe tipuri diferite de programe, de la procesarea textelor la motoare de cautare pe internet. lata cateva motive importante pentru a invata Python. Usor de invagat si de utilizat Contine un cod gata de folosit Programele Python sunt scrise Python contine biblioteci de coduri intr-un limbaj simplu. Codul este destul reprogramate pe care le poti folosi in de usor de scris side citit, comparativ programele tale. Devine astfel mai usor cu multe alte limbaje de programare. s& sci rapid programe complexe. =) pi "5 > Python are ‘omultime de programe pe «are le pot folosi side a care poti incepe. Util pentru organizatiile mari Python este puternic. Poate fi folosit pentru a scrie programe cu aplicare in lumea reala. Este utilizat de Google, NASA si Pixar, printre algi. Inainte de a invata cum s& programezi in Python, este util sé te familiarizezi cu modul in care functioneaz. Urmatoarele cateva pagini te vor invata sa Instalezi Python: Desi este gratuit, dar va trebul sa i instalezi singur (vezi pp. 88-91). Utilizezi interfaga: Fa un program simplu si salveaza-1 pe computer. Experimentezis incearca unele programe simple pentru a vedea cum functioneaz. . s CE ESTE PYTHON? Scratch si Python Multe dintre elementele utilizate in Scratch sunt folosite si in Python - doar cd arat altfel. lata cateva asemanari dintre cele doua limbaje. A Printin Scratch In Scratch, blocul say” este folosit pentru a afisa ceva pe ecran. Activeazé creionul Repet’ blocurile din Interior de 24 de ori pentru a desena un cere Migcd actorul inainte Intoarce actorul Dezactiveaza crelonul & A Grafica testoasel in Scratch Scriptul de mai sus foloseste blocul pen down” pentru a muta actorul pisica sia trasa un cerc. print(‘Hello World! ”) Scrie mesajul dort, B Mesajul apare pe ecran astfel x Hello World! A Print in Python, In Python, 0 comanda numita afigeaza textul pe ecran. from turtle import * pendown() Sse bua for n in range(24): forward(10) _ Intoarce festoasa in right(15) sensul acelor de ceasomic penipOu oe aires & A\ Grafica festoasei in Python Python exist o testoasa, Codul de mai sus poate fifolosit pentru a desena un cerc. a” = JOACA-TE CU PYTHON Instalarea Python | inainte de a putea folosi limbajul de programare Python, trebuie sa il descarci si sa il instalezi pe computer. Python 3 este gratuit, usor de instalat si functioneaza pe PC-uri Windows, pe Mac si pe sisteme de operare Linux, precum Ubuntu. Ce este IDLE? cael SFA Cénd instalezi Python 3, vel primi siun program gratuit f/Galvareacodulul) |) numit IDLE (Integrated DeveLopment Environment). - . } GAndit pentru incepatori, IDLE include un editor de text Cand paver ice ai Lact in Python de baza care iti permite sa scrii si s4 editezi codul Python. See citric pee ate SaHeiticar ‘4 poti da un nume fisierelor. Mai intai, creeaza un folder in care sa ifi WINDOWS poe eae os cuna nume clar, precum ,PythonCode” A Windows si hotdraste-te unde sa il pastrezi. Inainte de a descérca Python, ee | verificd ce fel de sistem de operare | are computerul tau. Daca ai | Windows, afla daca ai versiunea de 32 de biti sau cea de 64 de biti. Fa clic pe butonul ,Start’ clic dreapta pe, Computer’ si apoi clic stanga pe “Properties” Apoi alege. System" acd apare optiunea. — A Mac Daca folosesti Apple Mac, afld ce sistem de ‘operare are inainte de a instala Python. F8 cic pe iconia mar din partea stanga sus si alege About This Mac’. A Ubuntu Ubuntu este un sistem de operare gratuit care functioneaza exact ca Windows si Mac. Pentru aafla cum sa instalezi Pyhton pe Ubuntu, mergi la pagina 91 - Ss 5 , INSTALAREA PYTHON 4 _ Python 3 pe Windows Inainte de a instala Python 3 pe un PC Windows, asigura-te ca ai per- misiunea proprietarului computerului (in cazul in care nu este al tau. S-ar putea sd ai nevoie si de parola de administrator in timpul instalai Intra pe website-ul Python Descarcé Python Scrie adresa de mai jos in browserul de Fa clic pe cea mai noua versiune de Python pentru intemet pentru a deschide pagina Python. Fa clic pe Windows, incepand cu numérul 3, care va filangé partea Download’ pentru a deschide pagina de descarcare. de susa lstei. [ Q httpy/www.python.org Python 3.3.3 Windows x86 MSI Installer X Acesta este URL-ul Alege aceasta daca A Python 3.3.3 Windows x86-64 MSI Installer (adresa web) pentru. ai oversiune de 32 Nui face grjtin ‘Alege aceasta dacs Python de biti aWindows privinta numarului aio versiune de 64 exact, cata vreme de biti a Windows are 3 In fata Instaleaza Ruleazé IDLE iserul de instalare se va descarca automat. ‘Acum verificé dac8 programul s-a instalat Cand termina instalarea, f8 dublu-clic pentru a corect. Deschide meniul ,Start” din Windows, f8 clic instala Python. Alege install forall users” si f& clic pe pe, All Programs’ ,Python" si apol alege, IDLE” fiecare fereastra noua (next), f&r8 a schimba setarile Sor a es Asigura-te c& IDLE (Python GUI) selectezi Python 3 Iconita de instalare a Windows apare atunci cand se instaleazé Python Se deschide o fereastra de Python > Artrebui sa se deschida o fereastrd precum cea de mai jos. Acum poti incepe sa programezi ~ sctie doar in fereastra, dupa parantezele ascutite (>>>). indow Help [eye en] ee ety Untitled A cane Python 3.3.3 (v3.3.3:c3896275cOf6, Nov 18 2013, 21:19:30) [MSC v.1600 64 bit (AMD64)] on win32 Type “copyright”, “credits” or “license()” for more information. >>> _ Begin typing code here . vol JOACA-TE CU PYTHON Python 3 pe Mac inainte de a instala Python 3 pe un Mac, asigur’-te ca ai permisiunea proprietarului computerului, daca nu iti apartine. Este posibil sa fil nevoit sa fi ceri proprietarului parola de administrator. ‘Mergi la linkul Pyhton Scrie adresa de mai jos in browserul de internet pentru a deschide site-ul web al Python. Fa clic pe,Download” din panoul de navigare pentru a ajunge la pagina respectiva. [ Q htpy/wwm.python 9 | Nuiy face grji in privinga numarului exact, c&t& vreme are 3 In fats Instaleaza Fa dublu-clicpe fisierul dmg. Se va deschide o fereastrd cu mai multe fisiere in a, incluzand fisierul de instalare Python ,Python.mpkg’. Fé dublu-clic pentru a incepe instalarea. Fisier de instalare Python Pythonmpkg | By St eildeoferenserh Python Ar trebui si se deschida o fereastra precum ‘cea de mai jos. Acum poti incepe programarea ~ scrie doar in fereastra, dupa parantezele ascutite. a Untitled Gee peat) Python 3.3.3 (v3.3.3:¢3896275c0f6, Nov 16 2013, 23:3! Descarcé Python Verifica ce sistem de operare are Macul tau (vezi p. 88) $f clic pe versiunea potrivita de Python 3. Vei fiindemnat s8 salvezi un fisier dmg, Salveazi-I pe aceasta vetsiune desktop, este pentru Macuri mai noi _ a + Python 3:33 Mac OSX 64-bit. (for Mac OS X 10.6 and later) | + Python 33.3 Mac 0S X 32-bit. for Mac OS X 10:5 and later) — KE reeastafunctio- neazi pe majo- fitatea Macurilor Ruleaza IDLE Hotea In timpul instalari, f clic pe next” in flecare fereastra pentru a accepta setarile standard. Dupa ce se termina instalarea, deschide folderul ,Applications” de pe Mac si deschide folderul Python’ (asiguré-te ca selectezi Python 3, nu Python 2), Fa dublu-clic pe, IDLE” pentru a verifica daca instalarea a mers. Va Ionita IDLE —Y ices 5) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type “copyright”, “credits” or “license()” for more information. >>> a INSTALAREA PYTHON Python 3 pe Ubuntu Daca folosesti sistemul de operare Ubuntu de la Linux, poti sd descarci Python 3 fara sa fii nevoit s folosesti un browser — urmeaza doar pasii de mai jos. Daca ai o versiune diferita de Linux, roaga-| pe proprietarul computerului sd instaleze Python 3 pentru tine. Mergi la Ubuntu Software Center § Gaseste iconita Ubuntu Software Centre in Dock sau in Dash sifa dublu-clic pe ea. Selecteaza IDLE = sif8 clicpe,Install” Cauta IDLE (using Python)". Gaseste versiunea care incepe cu 3 sia clic pe clnstall’ Selecteazi Dash Dupa ce instalarea se termina, verifica daca programul functioneaza, Mai inta, selecteaza iconita Dash din dreapta sus. Se deschide o fereastré Python Artrebui sa se deschida o fereastré precum ‘cea de mai jos. Acum poti incepe programarea - serie doar in fereastra, dupa parantezele ascutite. feria Goa intitled [GCC 4.6.3] on Linux2 Type “copyright”, “credits” or “license()” for >>> Sy 2 Python 3.2.3 (default, Sep 25 2013, 18 Scrie ,Python’ in caseta de cdutari In partea dreapts sus, vel vedea o caseté de cdutari. Scrie Python" in casets si apol apasa pe enter. Q Python Cauta versiunea 3 Ruleazé IDLE } Scrie IDLE" in bara de Buta si 18 dublu-clic pe iconita sDLE (using Python 3)" albastra cu galben, Iconiga Dash Ionita IDLE Mee more information. 8 JOACA-TE CU PYTHON iti prezentam IDLE a IDLE te ajuta sa scrii si sa rulezi programe in Python. vn _— ‘cae 106407), Vezi cum functioneaza creand acest program simplu fereastra? care scrie un mesaj pe ecran. Lucrul in IDLE Sn SPAT DE EXPERT Urmeaza acesti pasi pentru a crea un pro- gram Python folosind IDLE. Te va invata cum sa introduci, sd salvezi si s8 rulezi programe. Python foloseste dous ferestre diferite - fereastra shell" (care interpreteazi comenzile) si fereastra code" (unde scrii codul) (vezi pp. 106-107). Le-am atribuit culori diferite pentru ale diferentia. Incepe IDLE | Incepe sa rulezi IDLE folosind instructiunile Shell window pentru sistemul de operare al computerului tau (vezi pp. 88-91). Se deschide fereastra shell. Aceast8 fereastrd arata rezultatele programulul (orice informatie produsa de program) si eventualele eror. Code window [festa a = st ee oT) Untitled Python 3.3.3 (v3.3.3:c3896275cOf6, Nov 16 2013, 23:39: [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type “copyright”, “credits” or “license()” for more information. 5) >>> i So Manjledets eea ceapare alc depinde Python apar ict de ce sistem de operere folosesti | L aan j Deschide o nous 7 bien Ce ee Fa clic pe meniul, File" din partea de sus a ferestrei shell si selecteazi New Window’: Astfel se ‘Aceasta este fereastra shel deschide fereastra code. Cee wee Eyer Recent Files aideschide reas Class Browser Path Browser .. IT] PREZENTAM IDLE Introdu codul ‘in noua fereastra code, introdu acest text. Este o instructiune de a scr cuvintele Hello World!” Salveaza fereastra code Fa clic pe meniul ile” si selecteaza Save As" Introdu numele fisierului HelloWorld” si fa clic pe,Save". erate vei atentcodul pentrua teasigura Enuaificatresell Ruleaza programul In fereastra code, fa clic pe meniul Run" si selecteaz ,Run Module’. Astfl, programul va rula in fereastra shell. Rezultatul din fereastra shell Priveste fereastra shell. Mesajul Hello World!" ar trebui s& apara cind ruleaza programul. Ai creat primul bit de cod in Python! >>> Hello World! >>> ‘Mesajul va aparea {ar8 ghilimele print(‘Hello World! ") Foloseste ghilimele simple ca Edit Cae Untitle “New Window { | Prin. Open | Open Module | Recent Files | Class Browser Path Browser Close Fa lic acl pentru ~~ a salva fisierul oe ee ee HelloWorld Python Shell t print(‘Hello World!’) Fa clic aici pentru —> arula programul TINE MINTE Respect mereu acesti trei pasi in IDLE: scrie codul, salveaza-l siapoi ruleaza- functiona. Daca incerci, va aparea un avertisment pe ecran. - Eatercode save ton a” JOACA-TE CU PYTHON Erori Uneot programele nu functioneaza din prima, dar pot fi intotdeauna reparate. Cand codul pentru un Erori si 148-149 corectarea lor Ce urmeaza? 7) program nu este introdus corect, Python va afisa un mesaj de eroare, spunandu-t Erori in fereastra code CAnd incerci s4 rulezi un program intr-o fereastra code, ce nua mers bine. ! vie s-ar putea s4 vezi cum apare o fereastra pop-up, cu un . mesaj de eroare (de exemplu, ,SyntaxError”). Aceste erori opresc programul din functionare si trebuie rezolvate. I Eroare de sintaxé Daca apare o fereastra pop-up cu ‘mesajul ,SyntaxError’ inseamnd adesea cB existé 0 greseala de scriere sau de ortografie in cod. ‘Syntaxérror @ invalid syntax Exist o ceroare de | serlere in cod (_Syntaxerror @ unexpected indent * Exist ospatiere incorecta in cod, care impiedica functionarea programului ‘Scoaterea in evidenté a erorii Fa clic pe,OK" in fereastra pop-up si te vel intoarce la program. Pe eroare sau aldturl de ea vei vedea o subliniere cu rosu Verifica randul ca sa depistezi greseala, print(‘Hello World!) ae De aici lipsesc Ss xes este Qhilimelele scoasd in evidenta ‘AT DEE) | Unele greseli sunt mai usor de facut decataltele, | | de aceea apar mai des. Printre acestea se numara: potriveasca exact. Daca scril,Print” in loc de, print’ | Python nu va infelege instructiunile, Ghilimele simple sau duble: Nu combina ghilimelele |_ simple cu cele duble. Ghilimelele de deschidere trebule s se potriveasca perfect cu ghilimelele de inchidere. | Minus gi linie jos: Nu confunda semnul minus (-) cu | semnul linie jos (), | Paranteze diferite: Parantezele de forme diferite, | precum 0,0, suntfolosite pentru scopur dient | | Litere mari sau litere mici: Acestea trebuie sd se Foloseste parantezele corecte si verificd daca ambele sunt de acelasi fl. Erori in fereastra shell . - . Tertuscis cup Uneori, un mesaj de eroare va aparea cu text rosu Inseam bun intr-o fereastra shell. Acest lucru va opri programul estetn regu din functionare. Name error Dacd apare mesajul de eroare ,NameError’, inseamné ci Python nu infelege unul dintre cuvintele folosite. Daca eroarea se Randul din cod (in fereastra afla in codul introdus in fereastra de cod, fa clic dreapta pe mesajul de cod) unde a fost gists de eroare din fereastra shell si selecteaza Go to file/line’, _-ervarea >>> Traceback (most recent call last): File “C:\PythonCode\errors.py”, line 1, in pront (‘Hello World!) cut NameError: name ‘pront’ is not defined copy Cuvantul pe care nu Fa clic aici pentru a sublinia ee ingelege Python randul in care apare eroareain. (eas Sessa i nae a deco Go tofilesine ® Repard eroarea = wes cg Randul cu eroare este scos in (‘Hello World! ") evidenta in fereastra de cod. A fost scris cuvantul,,pront” in loc de, print’. Poti, apoi, ‘Schimba cuvantul sa editezi codul pentru a repara eroarea. in.print” Depistarea erorilor ( REZOLVAREA ERORILOR ~) Foloseste sfaturile din aceste doua pagini pentru a gsi randul din cod in care apar erorile, apoi f& dublu-clic pe acel rand. Treci prin lista de verificare din dreapta, care te pisestotulcoret? i copiat exact ceea ce isa cerut sé scr Ar putea si observe ceva ce ta scipat. Folosesti Python 3 sinu Python 2? Programele pentru » Python 3 nu functioneazd uneoriin Python 2. pentru a gasi mai Usor erorile ata o lista util | | va ajuta sa depistezi ce nu a mers bine. | v Exsté doud ghillmete la inceputu sila sfrsitulexpresiei | pe care wei tiparesti pe ecran? | ‘A spaiin plus a fnceputul rSndului?in Python, spatiile sunt foarte importante. om & Cand lucrurile i verifcat randurile de deasupra side dedesubtul randului nu merg bine scosin evident? Uneor, acolo este problema. | Existd cateva metode 5 me — ‘Ai cerutsalteuiva 58 verifice cod ? pecans pot float Mcttsiatcive sveritice cod cu crea inf | y eater JOACA-TE CU PYTHON en Jocul fantomelor Acest joc simplu scoate in evidenta unele dintre lucrurile la care trebuie sa fii atent cand scrii programe in Python. Odata ce codul a fost scris, ruleazd programul pentru a juca jocul. Poti sa scapi din casa bantuita? Decodificarea 98-99) joculul fantomelor Fluxul 100-101) programului Porneste IDLE si foloseste L meniul, File” pentru a # Ghost game deschide o noua fereastr. from random import randint Salveaza jocul sub numele 4 Kao de, ghostgame" Aranjeazs «print (‘Ghost game") Folosesteghilimele simple ferestrele ca sale potivedea feeling brave = True Foloseste ltere mari daar acolo pe amandoua si apoi scri TW _- nde acestea apar astfe! acest lucru in fereastra score oO a ; Asiguré-te 8 folosesti eecod. Cf while feeling_brave:< dou puncte ac cesteatrebuie ghost_door = randint(1, 3) print(‘Three doors ahead...") Aceasta sectiune trebuie s& rint(‘A ghost behind one.’ si fie lini jos, nu semne minus patru spatii. Daca acest lucru print(‘Which door do you open?") ne tpl toma, ates : verifies dacs sunt puse dows door = input(‘1, 2, or 3?") puncte dupa felng brave oe eae tea, Foloseste doua Pee if door_num == ghost_door: iaateaaaleld Ta opt spat itebuie print (‘GHOST!”) sb fie redus la patru : sat feeling_brave = False \—_ print(‘No ghost!’) Sear print(‘You enter the next room.’) spatile de aici score = score + 1 RE REC Run away!") print(‘Game over! You scored’, score) Aici,,score" nu trebuie 8 alba ghilimele . . JOCUL canroue.de ag tun" pentru a selecta,Run Module” Mai inti, rebuie sé salvezi program aa Python Shell Check Module Foloseste,Aun Module” din meniul Runt in fereastra de cod ‘Scopul jocului este de a alege o usa in spatele careia s nu se afle nici o fantoma. Aitfel, te vei muta in urmatoarea camera $i vel continua s& joci jocul. Ghost game Three doors ahead... A ghost behind one. Which door do you open? me eor SORRY Shuman soared No ghost! seri apare all Vei vedea acest mesaj daca nu exista nici o fantom in spatele usii pe care oalegi Odaté ce codul a fost scris cu griji, foloseste meniul Jocul incepe in fereastra shell. Fantoma se ascunde dupa una dintre cele trei usi. Pe care o vei alege? Serie 1, 2 sau 3 si apoi apasa pe, Enter’ Ghost game Three doors ahead... A ghost behind one. Which door do you open? 1, 2, or 3? Scrie ce crezi Dacé nu ai noroc, vei alege o usa in spatele careia se afl o fantom, iar jocul se inchele. Ruleaza din now programul pentru a vedea daca poti obtine un scor mai bun. Ghost game Three doors ahead... A ghost behind one. Which door do you open? 1, 2, or 3?2 GHOST! <~~ ata ce apare daca in spatele Rep use afl o fantom Game over! You scored 0 Scorul ji aratd ator usial .supravieyuit® . JOACA-TE CU PYTHON Jocul fantomelor decodificat (8 cn. Fluxul 100-101 programului Jocul fantomelor pune in evidenta unele dintre trasaturile cheie ale Python. Poti descompune codul pentru a vedea cum este structurat programul si ce fac partile diferite din acesta. Structura codului Python foloseste spatii la inceputul randurilor pentru a-si da seama ce instructiuni trebuie sé stea impreuna. Aceste spatii se numesc SU ‘Structura jocului \__buca prineipat + » Date introduse Procesare s = GEE) Variable Tastatura Matematica cl Ramuri agi aee (30-31 Blocur colorate siseripturi Comenzi 102-103 ) simple ‘Comenzi mai 104-105) complicate 498 Rezultate Fluxul programului In Python, tastatura si mouse-ul sunt folosite pentru a introduce informatii, care sunt procesate folosind elemente precum buclele, ramurile si variabilele, Rezultatul ‘este apoi afisat pe ecran. "2 FLUXUL PROGRAMULUI Uita-te la Jocul fantomelor prin ochelari Scratch Fluxul programului functioneaza la fel in majoritatea limbajelor de programare. lata cdteva exemple de date Introduse, de procesare si rezultate in Jocul fantomelor din Python - si cum ar putea s& arate in Scratch. Pythons Scratch sunt mal asemanétoare deci pat Introducere informati In Python, functia ,input0” primeste informatii prin intermediul tastaturi Este similard blocului ,ask and wait" din Scratch. door = input(‘1, 2 or 32") » ————— pe ecran Procesare Variabilele sunt folosite pentru a fine minte scorul, far functia randint” alege la intamplare o usa. In Scratch sunt folosite blocuri diferite pentru a face aceste lucrur score = 0 N Stabileste variabila sscore"la0 ghost_door = randint(1, 3) NC Selecteazé un numar intreglaintdmplare inure 913 Rezultate Functia.printi)" este folosi a objine rezultatele in Python, in ti blocul,say" face acelasi lucru in Scratch. Afigeaza Ghost game" pe ecran print(‘Ghost game’) Exist o diferenta important’ intre Scratch si Python. In Scratch, ‘o multime de scripturi pot rula in acelasi timp. In Python, programul este compus dintr-un singur script. L Intrebarea in blocul Scratch blocul ,ask and wait” In Seratch ‘Acest bloc in Seratch stabileste valoarea variabilei,score" la 0 blocul ,set score to 0" in Scratch »+ Sea blocul ,pick random" in Scratch eer selecteaza un numar laintamplare Arata o bula de text continand cuvintele yo ‘game" "> ma blocul .say" in Scratch 402 JOACA-TE CU PYTHON Comenzi simple — La o prima vedere, Python poate parea destul de Python? complicat, mai ales cand il compari cu Scratch. Cu toate ay acestea, cele doua limbaje nu sunt de fapt chiar atat de diferite pe cat par. lata un ghid al asemanarilor dintre comenzile de baza din Python si Scratch. Ruleaza programul print(‘Hello!") | magic_number = 42 “Stabilesteo variabilapentru. word = ‘dragon’ ungirtext age = input(‘age?") print(‘I am’ + age) cats = cats +1 Inctementeazs ovariaits = OT cats t= 1 . = 2 while True: jump () for i in range (10): jump () if ass print(‘Hello!") ifiass print(‘Hello!") else: print(‘Goodbye!") “404. JOACA-TE CU PYTHON Comenzi mai complexe (2% Python poate fi folosit si pentru a face lucruri mai RE complicate decat este posibil in Scratch: de exemplu, simple s& creezi bucle complexe, s te joci cu siruri si liste si sd realizezi desene cu grafica festoasa. me while roll != 6: conditionale jump () from time import sleep sleep (2) from random import randint roll = randint(1, 6) — def jump(): print(‘Jump!’) ‘Apeleaza ofunciesau jump) tun subprogram _ def greet (who): print(‘Hello "+ who) | Apeleazs ofunqiesu greet (‘chicken’) Co tun subprogram S “w s COMENZI MAL comptske 108" from turtle import * clear() Grafica pendown() festoasa forward (100) right(90) penup() - print(greeting + name) Obfine otters ryt name [0] Len (name) eras menu = 11st) Cate obiecte sunt pe lista? len(menu) menu[4] Stergeal Zea obiect del menu[1] depelista if ‘olives’ in menu: print(‘Oh no!") : oacak JOACA-TE CU PYTHON Care fereastra? in IDLE, ai doua ferestre diferite din care poti 92-93 Lucrul in IDLE ae 5 ra (96-97 Jocul sa alegi. Fereastra code poate fi folosita pentru fantomelor ascrie sia salva programe, in timp ce fereastra shell deruleaza imediat instructiuni Python. Fereastra cod V Rularea programelor Pana acum, in aceasta carte, fereastra code a fost folosita Acest proces este folosit pentru pentru a scrie programe. Introduci programul, il salvezi, rularea programelor Python. Programele trebuie mereu s& fie salvate inainte de a fi rulate. ES — GS - GS - Ge p) Introdu un program in fereastra code Rezultatul in fereastra shell Introdu acest cod in fereastra code, Cand ruleaza programul, rezultatul salveazé-| si apoif8 clic pe,Run module” sau este afigat in fereastra shell din meniul,Run’ pentru a rula programul a= 104 DS ilui,a" valoarea 10, >>> DS ee ER — pat valoorea 4 14 pence sb) oman pri arts 6 print(a - b) raspunsul cestor \___risounsute a opera operatiuni aparin fereastra shell il rulezi, iar rezultatul apare in fereastra shell. Fereastra shell Python poate intelege si comenzile care sunt scrise ‘in fereastra shell. Acestea ruleaza de indata ce sunt scrise, iar rezultatul este afigat imediat. Primele doua comenzi nu au >>> a = 10 nici un rezultat, pentru cd doar >>> b= Ag mien 222 Past 3b >> from turtle import * es | >>> forward(100) instructiuni in i fereastra shell. >>> right (120) Acestea ruleaza >>> forward(100) dupa ce este scris fiecare dintre ele. Pe masura ce Jestoasa se misca, descrie o linie, (Misc festoasa inainte <1 Grafica festoasel Poti sa iti dai seama cum si desenezi alte forme, precum un patrat sau un pentagon? Pentru aolua dela capat, scrie,clear()" in fereastra shell. Ce fereastra ar trebui sa folosesti? Ar trebui sd folosesti fereastra code sau fereastra shell? Depinde de tipul de program pe care il scrii si daca trebuie sé fie repetat. D> Fereastra code Fereastra code este ideal pentru fragmentele mai lungi de cod, pentru ca pot fi salvate $i editate. Este mai sor decét sé rescrii toate instructiunile daca vrei si faci din nou acelagilucru sau s8 incerci ceva similar. Cu toate acestea, trebule sé fie salvat sirulat de fiecare data. IDLE codificd textul in culor Culorile iti ofera unele indicii despre cea ce crede Python despre fiecare fragment de cod. <1 Functii incorporate Comenzile in Python, precum sprint’ sunt prezentate in violet <1 Siruri intre ghilimele Verdele indicd sirurile, Daca si parantezele sunt verzi, atunci lipsesc ghilimelele. <<] Simboluri gi nume Cea mai mare parte din cod este in negru. >> gifts = 2 continutului unei >>> print(gifts) —— cumbavaloaee variabile 2 variabilei Pentru a schimba valoarea unei >>> gifts =3 ai variabile, atribuie-i, pur si simplu, ‘o noua valoare. In acest caz, variabila, gifts” are valoarea 2. Se schimba in 3 cand ise atribuie © noua valoare. >>> print (gifts) 3 Folosirea variabilelor Valoarea unei variabile poate fi atribuita unei alte variabile folosind semnul,,=". De exemplu, daca variabila »tabbits” contine numéarul de iepuri (rabbits), o putem | Exista cteva reguli pe care trebuie sa | folosi pentru a atribui aceeasi valoare variabilei ,hats” | le urmezi cand numesti variabilele: (jobene), astfel incat fiecare iepure sé aiba unul. SFAT DE EXPERT Pot fi folosite toate literele si numerele. ‘Nu potf incepe cu un numar. Simboluri precum -, /, # sau @ nu pot | | | Ateibuirea variabilelor | fifolosite | | | Acest cod atribuie numarul 5 variabilei rabbits’. Apoi atribuie aceeasi valoare variabilei hats", Spatille nu pot fi folosite Olinie jos (_) poate fifolosita in loc de Valoarea Numele | sat. variable Se | Literele mict i literele mari sunt Ty diferite. Python trateaza ,Dogs" si.dogs" >>> rabbits = 5 ca doua variabile diferite. SSeatokenrabbits Nu folosi cuvinte pe care Python le | foloseste ca o comands, precum.print valoare ca si,rabbits* Printeaza valorile JB) Schimba vatoarea pentru rabbits” Pentru a printa dous variabile, pune-le Daca schimbi valoarea lui.rabbits", nu afecteazé pe ambele intre paranteze dupa comanda valoarea lui hats" Variabila hats” se schimba doar abrint” si pune o virguld intre ele, Atat hats’ cat si rabbits" contin valoatea 5. >>> rabbits = 1077 —~ Atbuie.rabbits” ‘nous valoare >>> print(rabbits, hats) >>> print(rabbits, hats) 55 Las un spatiu faloarea pentru, z dupawigua + «10S. anion ae . JOACA-TE CU PYTHON Tipuri de date a Python Sirurin 114-195) Exist mai multe tipuri de date in Python. In majoritatea timpului, Python va functiona cu tipul de date folosit, Python dar, uneori, va trebui s4 schimbi tipul de date. Luarea 118-119 deciailor Liste 128-129) Numere Python are doua tipuri de date pentru numere. ,Numerele intregi” sunt numere fara o virgula zecimala. ,Numere zecimale” sunt numerele care au o virguld zecimala. Un numar intreg poate fi folosit pentru a numara lucruri precum oile, in timp ce numerele zecimale pot fi folosite pentru a masura lucruri precum greutatea. ‘g ‘e ‘e. on a8 on a8 in >>> sheep = 1 >>> sheep = 1.5 = nnumte Seana ses >>> print (sheep) invegeste >>> print (sheep) ~ dinmumse unease zecimal 1 rotund 1.5 A Numere intregi A Numere zecimale Un numarintreg este un numa Un numérzecimal este un numar cu virgul fara virgula zecimala, cum este zecimala, precum 1,5. Nu sunt folosite in mod Tin valabla oat’ normal pent a numéra obiecte integl Siruri Exact cain Scratch, un fragment de text in Python seentsoneesom, este nuit, sir’, Sirurile pot include litere, numere, spatil si simboluri, precum puncte si virgule. Acestea sunt plasate, de obicei, intre ghilimele simple. Tinemintemereu sila eve de hile inceput sila stag ' Sil intre “ee © Utilizarea >>> a = ‘Coding is fun!’ unui sir Pentruadesemna >>: print (a) Valoarea Unsirunelvareble, Coding 1s fun! vale pune textul intre afigata ghilmele simple, = "2 TIPURI DE DATE In Python, exist’ multe tipuri de date, Pentru | aafla de ce tip sunt unele date, poti folosi Numere booleene in Python, un numar boolean are mereu o valoare care este fie ,adevarat’, fie fas" In ambele cazuri, cuvantul incepe cu litera mare. wir | comanda type” ghilimole Comanda vo type" | D> Adevarat >> ale Tre a | Cand valoarea ont ete} >>> type (24) | rint(a sAdevirat” este P <\2sesteunnumar | puss ntrovariabila, True 3 ee | va fio variabils we >>> type(24.3) | boolean’. Valoarea boolean’ afiata Nas eseun >>> type(‘24") rnumarzecimal > Fals seei ( float’) Cand valoarea,Fals’ >>> = False | | este pusd intr-o | , | variabila,accastava >>? PPINE(A) valonren | a ean fitot o variabila booleans | are oh scien False S— a Lo - _™ ‘ghilimele __| Convertirea tipurilor de date Variabilele pot contine orice tip de date. Pot sa apara probleme daca incerci sé amesteci tipurile diferite. Tipurile de date trebuie sa fie convertite uneori, altfel va aparea un mesaj de eroare. D Tip mixt i >>> apple = input(‘Enter number of apples *) Sirul intre ghilimele afisat Numele variabilei peecran Comanda, input” di mereu un sir, chiar dacé este Enter number of apples 2 introdus un numér. In acest incearca sé adauge numéarul 1 exemplu,dinmomentce. >>> Print(apple + 1) < —__varabieapple” apple" contine,defapt,un — TypeError sir, este afigat un mesaj de eroare. Programul aigeaza un mesaj de eroare din moment ce Python nu stie cum s8 adauge un numérla.un sir D> Convertirea tipurilor 2 dedate >>> print(int(apple) + 1) Pentru a convert sirul 3 {ntr-un numar, comanda KO .intQ” este folosita pentru Programul functioneazs. Variabila se transform& dintr-un sirintr-un 241 transforma intr-un acum siafiseazd niumérintreg,astel neat numaral poate numar intreg, rezultatul adaugat a acesta *, * Aa, CA-TE CU PYTHON Matematica in Python ene 108-109 Variabile Python poate fi folosit pentru a rezolva tot felul TAPS de probleme de matematica, incluzand adunarea, scdderea, inmultirea si impartirea. Variabilele pot fi folosite si in sume. Calcule simple in Python, pot fi facute calcule simple scriindu-le in suptingia ce in fereastra shell. Functia,,print()” nu este necesara pentru eae es aise acest lucru ~ Python ofera raspunsul imediat. Incearca mes deerare ac vel incerca aceasta, aceste exemple in fereastra shell. Foloseste fereastra shell pentru a obtine ee >>> 12+ 4 oie rezultate instant 16 8 Raspunsul apare ed A Adunare cand apesi pe A Scddere Foloseste simbolul,,+” pentru sinter” Foloseste simbolul,-* pentru a aaduna numerele. scddea al doilea numar din primul. Computerele folosesc simbolul,*" sinu.x entruinmulie B " Impartirea in Python da un >>> 12 * 4 >>> 12/4 raspuns sub forma unui numar zecimal (un numar cu virgula 48 3.0¢ cecal) A Inmultire A Impartire Foloseste simbolul,*” pentru Foloseste simbolul,/” pentru a a inmulti dou numere. imparti primul numar la al doilea. Utilizarea parantezelor eee ieee Parantezele pot fi folosite pentru a a finmultit cu 3 este aa SEN da instructiuni programului Python, ce parte din suma si calculeze mai?” (© + 5) * 3 are ue OmgE>)) inti. Python va calcula mereu 33 21 <\ raspuns ditert valoarea sumei din paranteze, inainte de a rezolva restul 4 Mai intai inmulyirea ‘ In aceasta sua, parantezele sunt _Parantezele, in acest caz, sunt problemei. folosite pentru a-ida instructiuni —_folosite pentru a face mai intai lui Python s8 facd adunarea mai inmultirea, inainte de a ajunge 7 la raspunsul corect. a MATEMATICA IN PYTHON Plasarea raspunsu in variabile Daca variabilelor li se atribuie valori numerice, le poti folosi in cadrul sumelor. ‘Cand o sum ii este atribuita unei variabile, rspunsul merge in variabila, si nu in suma. Hy Schimba valoarea varial Schimba valoarea variabilelor, spiders”. Aduna din nou v 3spunsul in variabila bugs’ or peo) Schimbs valoarea Fé oadunare simp! Acest program aduna variabilele ants" si,spiders', si pune rspunsul in variabila bugs". >>> ants = 22 >>> spiders = 35 >>> bugs = ants + spiders >>> print (bugs) pense 57 1 doud variabile ‘Afiseaza valoarea in.bugs" gg or8 cerbuire Dac suma nu ii este atribuita variabilel bugs’, chiar daca valoarea lui,ants” si,spiders* se schimbé, valoarea lui ,bugs” nu se va schimba. >>> ants = 11 in,spiders” Afgeaza >>> spiders = 18<—~ >>> spiders = 17 vse, >>> bugs = ants + spiders >>> print (bugs) “ >>> print (bugs) \— pana in ou 40 40<———. rspunsul se schimbs A cespnautpue xtc (este in continuare 1822) Numere aleatori TINE MINTE Pentru a alege un numér la intamplare, trebuie mai intai s& Incarci functia ,randint” in Python. Pentru a face asta, foloseste comanda import’. Functia ,randint()" este deja programata cu un cod pentru a alege un numar intreg la intamplare. Adauga functia au >>> from random import randint >>> randint (1, 6) Alegeun numéela intdmplare inte 1516 3K 3a fost ales la intamplare A Da cuzarul Funetia randint()" alege un numar la intamplare intre cele dous numere din paranteze. In acest program, sfandint(1, 6)" alege 0 valoare intre 1 $6. | Functia randint()* functioneaza ca blocul, pick random’ din Scratch. In Scratch, numerele cele mai mici si mai mari posibil sunt scrise in ferestrele blocului. In Python, numerele sunt puse intre paran- teze, separate de o virgula. | A Numere intregi | Atat funcya,randint) din Python, cat j siblocul din Scratch aleg un numar intreg la intamplare; rezultatul nu are niciodata zecimale. = = a JOACA-TE CU PYTHON . oA Siruri in Python Python este excelent cand vine vorba de a folosi cuvintele rul programelor. Sirurile diferite RCT 91) Turi de date (secvente de caractere) pot fi unite sau parti individuale din acestea pot fi selectate si extrase. (54-55 Sirus silste Crearea unui Un sir poate include litere, numere, simboluri sau spatil. Acestea se mai numesc si caractere. Sirurile pot fi plasate in variabile. Ae faptul ca varabila include un sir D> Siruriin variabile x = ‘Run! ° Variabilele pot include sirur, 77” @ = ‘Run! a Serie aceste dous siturl in variabilele.a" si,b" Saree tiorckereicon nay Adaugarea de siruri Daca aduni doua numere se creeaza un nou numar. in acelasi fel, cand se aduna doua siruri, un sir se adauga, pur si simplu, celuilalt. | Funcfia,len()" este folosita pentru | aafla lungimea unui sir. Python : Variable. s,b" se | , ae he estan senna ate | numara toate caracterele, inclusiv >>> print(c) varlabilae" | spatille, pentru a calcula numérul : 1 ractere dintr-un sir. Run! Aliens are coming. | total de ca s Calculeaza lungimea A Adunarea sirurilor | ‘unui grin variabilaa* Simbolul ,+" altura un sir altuia, iar Runt") raspunsul devine variabila,c’. Un nou sir este LO adunat la variabila.c” >>> Len(a) >>> ¢ = b+‘ Watch out! "+a ioe . > >>> print(c) Een) Aliens are coming. Watch out! Run! R = 7 an. | Sirul in variabila ,b" (,Aliens A Adéugarea unui alt sirin mijloe Noularapere in Secomngt)aree haga Un nou sir poate fi de asemenea adaugat intre mijlocul mesajului =| de 18 caractere dus suri, Incearca exemplul de mai sus. Ls “ay a SIRURI IN PYTHON jumararea caracterelor ‘are caracter dintr-un sir are alocat un numar functie de pozitia sa. Acest numar al pozitiei _ ate fi folosit pentru a analiza litere sau — mboluri individuale ori pentru le scoate dintr-un sir. ey Numératoarea incepe de la zero Numararea caracterelor Cand enumerd pozitil, Python incepe Numérul de pozitie se numeste de la 0. Al doilea caracter se afla in pozitia 1, sindex’ Poate fi folosit pentru a scoate al treilea in pozitia 2 si asa mai depart. ‘© anumita lterd dintr-un si >>> a = ‘FLAMINGO’ A sasea ttera.N* >>> a[3] se afld in poziia aye N__- Parantezele patrate aa M includ indexul iN ROU OCB en 23 4 5 6 TR ompseneo KO esteln posta? se afla in pozitia 0 oFeliere” De la inceput sau dela sfarsit Doua indexuri pot fi folosite pentru Daca te oprest la inceputul sau a extrage sau a, fella” o parte dintr-un si la finalul unut index, Python va folosi Litera din ultima pozitie nu este inclusa automat primul sau ultimul caracter din si >>> all57] pous puncte e227 als] Bee aie aint acca | fx ios XN ny >>> a[3:] O felie dela indexul 1 la a incepe la / Se termin’ indexo — “MINGO*< “tg index? Indexul 6 al varabilel,a" Apostrofuri Sirurile pot sta intre ghilimele simple sau duble. Cu toate acestea, sirul ar trebui sa inceapé si sa se termine cu acelasi tip de | A Evitarea apostroful ghilimele. In aceasta carte sunt folosite \ Ca Python sa nu considere ghilimele simple. Dar ce se intampla daca \ Apostrofuleste @Postroful drept finalul unui sir, | ; * inclusin sir scrie un,/" inainte de acesta, wrei sa folosesti un apostrof in sirul tau? Procedeol sa feet erat apostrofului >>> print('It\’s a cloudy day.") It's a cloudy day. tis a cloudy day 2 vel JOACA-TE CU PYTHON Date introduse si rezultate fm . . ae programului Programele interactioneaza cu uti izatorii prin dateleintroduse — Cyoaitipu sirezultate. Informatiile sunt introduse cu ajutorul tastaturii. dedate Rezultatele sunt prezentate ca informatie afisata pe ecran. Buclein 122-123) Python Date introduse Functia,input()” este folosita pentru a accepta introducerea de date intr-un program prin intermediul tastaturii, Asteapta pana ce utilizatorul termina de scris si apasd pe tasta,return” sau Enter’, Functia input” permite utilizatorlor s8 interactioneze cu un program folosindu-sitastatura Adaugarea unui Utilizarea datelor introduse spayiu dupa dou’ Rezultatul in fereastra shell Un program ii poate spune puncte face ca Cand programul ruleazé, mesajul,Enter utilizatorului ce s8 scrie. Mesajul renutatl s8 2% your names i rAspunsul sau apar in fereastra este pus intre parantezele ,input(” ee shell. name = input (‘Enter your name: Enter your name: Jina print(‘Hello’, name) Hello Jina pentoteleprogautidepind ——“\Mesjlrenuat—_Utzatoli de ce ume scr ullzatorl Alprogramulul ——_serlenumele Rezultat Functia ,print()” este folosita pentru a afisa caractere in fereastra shell. Poate fi utilizata pentru a arata o combinatie de text si variabile. ' Rezultatul este afigat pe ecran A) >> a = ‘Dave’ >>> print(a, b, Cc) Dave is 12 p> c= 12 wcestea >>> print (‘Goodbye’) XS Goodbye Dave ioe Fara ghlimel, finds Cele dous puncte ‘este numar intreg separa obiectele diferite >>> b= tis’ acestea DATE _Doua modalitati de a separa siruri Pana acum, rezultatul a fost afisat pe un rand, cu spatii intre obiecte. lata doua alte modalitati dea separa sirurile. >>> print(a, b, c, sep="=") _ Dave-is-12 A Cucratima intre rezultate Caracterul Inte variabile poate fi puss o cratims, dintre rezulkate atunci cand sunt afisate. Alte caractere, cum ar fi,+” sau," pot fi siele folosite. Trei moduri de a termina rezultatul Exist cateva moduri diferite prin care poti semnala finalul unui rezultat al unei functii print’. >>> print(a, ‘.") Punctul Dave . cu Punct adaugat >>> print(a, end=".") Caumcsaeer final” Dave. A Adauga un punct la rezultat Un punct poate fi adaugat pentru a fi afisat un nou sit, dar va fi afigat cu un spatiu inainte. Pentru a evita acest lucru, foloseste ,end='."*in schimb. Spatiu pe Buc’ pentrua post de afiga de tre! ori caracter —N final? >>> for n in range(3): print(‘Hurray!’ end=*'") Hurray! Hurray! Hurray! A Rezultatul pe un singur rand Rezultatul De obicei fiecare nous comandii-print” este asain ‘incepe pe un rand nou. Pentru a obtine rane rezultatul pe un singur rand, foloseste un spatiu pe post de caracter de final" "ie INTRODUSE $I REZULTATE Separator \ >>> print(a, b, ¢, sep=‘\n") Dave Fiecare variabila incepe is peun rind now ene A A Rezultate pe randuri noi Spatiul sau caracterul dintre rezultate este numit,separator”(,sep"). Folosirea,\n* afigeaza fiecare rezultat pe un alt rand, 12 SEAT DE EXPERT — Etichetele ,end” si,sep" ti spun lui Python c& urmatorul obiect din program nu este doar Un sir simplu, Aminteste-ti si le folosesti, altfel | programul nu va functiona cum trebuie. end sep >>> print(a, end=*\n\n\n\n") Dave i Flecate,\n" incepe eer) tun nou rand OO tnainne de-cursor >>> A Linii goale la final Folosirea.\n” incepe fiecare rezultat de la un now rand. Cateva dintre ele pot fifolosite impreuna pentru a adauga linii goale la finalul unui program. Baidgag Saci-re CU PYTHON Luarea de decizii Programele iau decizii in legdtura cu ceea ce trebuie sa faca prin compararea variabilelor, a numerelor si a sirurilor, folosind expresii booleene. Acestea ofera ca raspuns fie,,Adevarat’, fie ,,Fals”. Operatori logici (62-63 Adevarat saufals? Operatorii logici sunt folositi pentru a compara variabilele cu numere sau siruri sau chiar cu al variabile. Raspunsul rezultat este fie ,Adevarat oa ee decat sau egal cu" A Tipuri de operatori de comparatie Exista sase operatori de comparatie. Python foloseste doua semne de egal pentru a ‘compara daci doua obiecte sunt identice. (Un singur semn egal este folosit pentru a atribui o valoare unei variabile,) ~Operator egal” — Operator eNueste egal cu" — operator, Mai putin decat* Operator Mai mare decat” —Operator Mat putin decat sau egal cut D> Foloseste fereastra shell pentru a verifica Operatori logic functioneazs si ei in ereastra shel Foloseste acest exemplu pentru a incerca mai multi ‘operatori logic incluzand not’ or” si,and’ Ite t', fie ,Fals” >>> toys = 10 ‘cesta verificd daca >>> toys == Lem eseeaalaat False Acestaverificé daca. toys eo p< estemal mult decat 1 True Acestaverificé daca.toys? este mai putin decat 1 >>> toys < eae False Acesta verified dacd oo .toys" nu este egal cu 1 >>> toys I= 1 Bs Acestaverificé daca,toys" este True _Maimic deci sau egal cu 10 >>> <= EOYs 10 ——— Operatorul logic not” inversea- True 24 aspunsul fin acest exem- plu, de la,Fals* la ,Adevarat") >>> not toys Operatorul logic,or" veri= n! True fica daca toys" este 9 sau 10 >>> toys == 9 or toys == 10 True >>> toys == 9 eos == 10 False _— Operator lagiand” verifies daca, toys" este 319 5110. Acest lucru'nu poate finiciodata ade- varat, aga cé raspunsul este, Fals* ste ziua de nastere a Ellei?, ua de nastere a Ellei este pe 28 iulie. est program ia 0 zi sio luna si loseste operatori logici pentru verifica dacd este ziua je nastere a Ellei. Detector dacé nu este ziua de nastere Poti inversa rspunsul folosind operatorul logic not’, Vet obtine raspunsul,Adevarat” in fiecare 2i, cu exceptia zilei de nastere a Elle Verifi LUAREA DE D ziua de nastere a! ECIZI Creeaza variabile pentru oi si pentru o >>> day = itll, oo ue >>> day = 28 >>> month = 7 28 and month luna. Foloseste operatorul logic, and” pentru a verifica dacd este 28 iulie. Operatorul and verificé daca ambele >> day = 28 Acest caracter >>> day = 28 Verificd daca >>> month = 7 ctefoiost 55> month = 7 este 28 le >>> not (day == 28 and \ Cdusotupe >>> (day 28 and month == 7) \ month == 7) or (day == 1 and month == 1) Este ziua de nastere a Elli Rspunsul va fl,Adevérat”dacd este False x se cavdspunsul este Fale True x __~ siya de nagtereo Elle sau Anul Nou Siruri cae! SFAT DE EX Doua siruri pot fi comparate folosind operatorul, sau operatorul,,!=", Sirurile trebuie sd se potriveasc& perfect pentru a obtine un rezultat ,Adevarat". >>> dog = ‘Woof woof’ Sirurile se potrivese i ‘exact, deci rispun- >>> dog Woof woof sul este Adevarat” True ———~ Sirurile nu se potrivesc ‘ + pentru c& nu exist8 >>> dog Woof woof’ Pantruci nu ex False Sirurle nu se potrivese >>> dog ‘Woof woof "£7 pentru cé exista un spatiu in plus inaintea False semnului de intrebare A Exact la fel Siturile trebuie s8 se potriveasca pentru a fi egale. Aceasta inseamné ca trebuie sa foloseasca litere ‘mati, spati si simboluri in exact aceleasi locur Operatorul in’ poate fi folosit pentru a vedea dacé un sir se afla in interiorul unui alt sir. Foloseste-I pentru a verifica dacé un sir confine o anumita litera sau un anumit grup de li Acesta verificd daca 1a se afl3 In abe" >>> ‘at in True >>> td? in False itere. abc” od nu se fla in, abe ‘aspunsul este,Fals' a fr eg Saci-ve cU PYTHON Ramificarea Expresiile booleene pot fi folosite pentru a determina ene) ce ruta ar trebui sa urmeze un program, in functie daca de decizli raspunsul la expresie este ,,Adevarat” sau _,Fals”. Acest fenomen este cunoscut drept,,ramificare”. (64-65 Decizi siramuri A face sau a nu face Comanda, jf" inseamna ca daca o conditie este ,Adevarat', atunci programul ruleaza un bloc de comenzi. Daca acea conditie nu este ,Adevarata", se sare peste blocul respectiv. Blocul de dupa comanda, if" se afl mereu la patru spatii distanta de margine. Indica utitzatorior Conditia if” : : Acest cod intreaba utilizatorul. + @NS = input(‘Is it your birthday? (yin) D} a. on aie easté parte a dac& este ziua lui de nastere. Verific’. 4 # ans y programululruleaza daca rspunsul este,y" Daca da, este rint(‘Happy Birthday!’ ‘doar dacé utlzatorl afigat un mesaj cu ocazia zlei de print( ‘Happy Yi eae cee nastere. fetes cu patru spat Serie,y" Rezultatul pentru,,Adevarat” . 5 Ruleaza programul ;iintrodu,y, IS it your birthday? (y/n)y Este aft mesajul,Acestanuapare. = Happy Birthday!< _ Apare mesajul dacé este introdus orice altceva, Fa aceasta sau aceea SE Comanda, if” poate fi combinata cu o comand woe velse", Aceastd combinatie inseamna ca dac un ANY eA, lucru este ,Adevarat’, se intampla un lucru, si, dac& Al nu, se intampla altceva. A PIS Gp condiia.tfelse” pees Dacd este introdus.y" ans = input(‘Is it New Year? (y/n)*) programul afiseaza un mesaj if ans “y" :¥<__ Tine minte cele dous puncte acest mesaj apare special pentru Anul Nou. Afiseaza ea ae doar dacd un mesaj diferit daca se introduce print(‘Happy New Year!") utilizatorul altceva print(‘Time for Fireworks.’) __ introduce,y" else Ruleazs doar daca Tramioestpus_ EMA nec Noe yar neon aaa ‘aici dou’ puncte Rezultatul cand conditia este ,Adevarata” Ruleaza programul si scrie,y* Programul iti arata ‘un mesaj de Anul Nou. Nu afigeaz nici un alt mesaj, Is it New Year? (y/n)y Happy New Year! Scrie,y’ Time for Fireworks. a "a RAMIFICAREA Rezultatul conditiei ,else” Scrie,n sau orice alt caracter si nu va fi afigat mesajul de Anul Nou, In schimb, va aparea mesajul,Not yet!” (Nu inca). Serie,n* Is it New Year? (y/n)n Not yet! ‘Apare un mesaj diferit Fa unul dintre aceste lucruri comanda elif”. Conditia,,if-elif-else” Acest program verifica ce este scris. Dacé este vorba de ,add’,sub’,,mul” sau div’ atunci este afigat rezultatul sumei, Aminteste-tis8 Cere utilizatorulul ss adaugi ghilimele Introducd un numar si paranteze Cc int(input(‘a = ")) int(input(‘b = ’)) op = input (‘add/sub/mul/div:") " Aap add se c=at+b variabilele elif op == ‘sub’: co =taeib elif op == ‘ml’: serie, div" pentru a impart CHa by vohabiele elif op == ‘div’: a/b ‘Errore 7 print(‘Answer = *,c) c= Prezinta un mesaj de ‘eroare Inc’ daca este els scris altceva ‘Arata raspun- sul sau mesajul de eroare Comanda,elif” este forma prescurtata pentru ,else-if" Inseamna cd daca ceva este ,Adevarat’, faci un lucru, altfel __verificd daca un alt lucru este ,Adevarat” §i atuncl trebuie sa _ faci altceva. Urmatorul program pentru calculator foloseste Rezultatul pentru condifia care este, Adevarata” Testeaz3 programul.Introdu doua numere si scrie sub" Raspunsul va fi primul numar minus al doilea numa. a= 7 introdudoua Scrie,sub" pees rnumere pentrua scidea 5 din7 add/sub/mul/div: sub ~~ Answer = 2 ‘ue en scézand variabila,a" din variabila,b’ Rezultatul pentru conditia,else” Conditia else” ruleazé dacé un alt lucru decat add", Sub", mul” sau div” este scris $1 este afigat un mesaj de eroare. a=7 b=5 add/sub/mul /div: try<— a eas Answer = Error<————~" deeroare Serie ceva dliferit aici 2 2 JOACA-TE CU PYTHON Bucle in Python iclud lit Programele car comenzi bucla. Cele mai repetate de cod pot consuma mult timp pentru scriere si pot fi dificil de inteles. Un mod mai clar de scriere a acestora este prin folosirea unei imple bucle sunt acelea care (48-49 Creioane sitestoase Bucle while 124-125) Cum scapi 126-127) din bucls se repeta de un numar de ori, cum ar fi buclele,,for”. Repetarea lucrurilor O bucla, for” repeta codul fara s& mai fii nevoit s8 il scrii din nou. Poate fi folosita pentru a repeta ceva de un anumit numar de oti. De exemplu, dacé vrei sa afisezi numele a 30 de elevi dintr-o clasa. Programeazé festoasa 0 buclé for® poate fi folosita si pentru a scurta codul. Acest program ii permite utilizatorului si controleze o testoasé care descrie o linie in timp ce se misc pe ecran. Utilizatorul poate desena forme pe ecran, precum un triunghi, dirijand miscarile testoasei. (ae Aceasta face testoasa forward(100) s8 se Intoarcd 120de grade la dreapta @ Testoasa deseneaza un triunghi Programul fi spune festoasei cum s8 deseneze un triunghi dindu-i lungimea celor trei laturi si unghiurile dintre ele, Testoasa va aparea inti-o fereastra separata and vei rula programul Testoasa in Python \— pogrom {estoasa 8 dese nreze un triunghi from turtle import * oie forward(100) right(120) eres forward (100) aeeee ‘Aceasta comand misc inainte festoasa right (120) Foloseste o bucla ,for” Programul de mai sus da testoasei aceleasi dous comenzi, forward(100)" si,right(120), de trei ori -0 dat pentru fiecare laturd a triunghiului, O alternativa este sa folosesti comenzile in interiorul unei bucle for’ Incearca 8 >> 2 4 6 8 10 ~~ in muttiptu de dot A. Numarand din doi in doi ‘Aceasta bucla are oa treia valoare in gama ei, care i spune buclei si numere din doi in doi. Se opreste la 10, ‘adicd la o bucld inainte ca variabila bucla s& ajungé la 11. A Variabila bucla simpli Aici, gama buclei nu spune care ar trebui sa fie valoarea de inceput. Asa c& Python incepe sa numere de la 0, in acelasi mod in care o face siin cazul sirurilor, Acesta spune programului 8 numere n sens invers for i in range(10, 0, print(i, end=" ") eLy >>> 10987654321 4. Numaratoare invers& De aceasté data, programul numara invers de la 10, ca la lansarea unei navete spatiale. Variabila buclé incepe la 10, simerge din 1 in 1, pana ajunge la 1. Bucle in cuib boo Veloreata a Buclele dintr-o bucla se numesc,,bucle in ees Ic e . tui,b tt ree oe cuib*. In cazul lor, bucla exterioard se repeta ol es doar dupa ce bucla interioara s-a repetat de interioar serepets numéarul de ori cerut. 3 x 1 = 3) detreion Pentrua face bucele sé se repete de,n’ of Bucs 1x 2 = 2] pdouacars, ‘ultimul numar din gama ae trebu s fier 1" exterioars 2 x 2 = 4 budacmercars n=3 3x2=6 for a in range(1, n + 1): 1X 3= 3) _ ateiaoars, for b in range(1, n + 1): 2x3=6 buclajestericara Print (bia ixie asi mire bite) 3x3=9 A Bucle din interiorul unei bucle Bucla A Ceseintampla interioars In acest exemplu, de fiecare data cand bucla exterioard merge o data, bucla interioara o face de trei oi. Asa c3, in total, bucla exterioard este executatd de trei ori, lar bucla interioard este executatd de nous ori. ‘Aceasta suma va fi afigata de noua or! Buclele in cuib afiseaza primele trei randurl ale tabelelor 1, 2 513. Valoarea lui,a” se schimba doar cdnd bucla exterioard se repetd. Valoarea lui,b" este dela 1 la 3 pentru fiecare valoare a lula". = ans JOACA-TE CU PYTHON Bucle while — de deci Buclele,,for” sunt folositoare cand stii de cate ori trebuie eases sa fie repetata o sarcina. Dar, uneori, vei avea nevoie de Python 0 bucla care sa se repete pana se schimba ceva. O bucla Cum sé scapi 126-127 > din bucle »While“ se repeta de cate ori este nevoie. Bucle while he No Oastfel de bucla se repet& cata vreme o anumit —functioneazs conditie este adevarata. Aceast8 conditie este nU-—g bucté while mita ,conditie bucla" si este fie adevarata, fie falsé. —_verifica daca co conditie este Yes ease Crearea unel bucle while adevirat8. Dacd Stabileste valoarea de start a variabilei ,rispuns" intr-o da, atuncl parcurge conditie bucla. Conditia bucla trebuie si fie adevarata pentru din nou bucla. Dac Inceput sau programul nu va rula niciodata bucla. ru, sare peste bucl. Codul din si i Bucs answer = ‘y’&——~ Yarabila,rispuns” este sera .y ess While answer == ‘y’ ere Soares es cam ek cae print(‘Stay very still’) margine answer = input(‘Is the monster friendly? (y/n)’) ‘ e In cazul in care conditia este fas, codul neretras, print(*Run away!) < ~ ge dupa bucla, ruleazé si apare un mesa difecit Cum araté programul 20 Tine mine Valoarea introdusé este stocata in variabila,raspuns". continua sd se deruleze. Daca scrii,n’, bucla se opreste. Bucla while din Python este | similar cu blocul ,repeat until” op din Scratch. Ambele continu’ | Stay very still s8 se repete pana se intampla Is the monster friendly? (y/n)y . | &——~ Raspunsul este,y"; deci Staypvervast i TL bc continu 8 uleze Is the monster friendly? (y/n)y Stay very still Is the monster friendly? (y/n)n | Repetablocurle din interior y——~ spunsul estesn’ deci bucta se - Run away! PN ed mea | pana ce condita este adevérat8 et BUCLE WHILE cle forever ele bucle ruleaz8 mereu. Daca stabilesti conditia dintr-o bucla ile” drept, Adevarata", nu poate fi niciodaté falsd, iar bucla nu A Mergand in buel& va sfarsi niciodata. Acest lucru poate fi ori util, ori deranjant. © buclé cu condivia Adevarata” este Creeaza 0 bucla forever numita bucla,infinita’. rats Altfelspus, Conditia buclei in acest caz este ,Adevarata. Nimic din Cuysneut sci sceea ce se intmpla in bucls nu va face ca,Adevarat” sifie Cuvantul seis este nu are sfarsit. pastrat in variabila egal cu altceva decat ,Adevarat’, aga c& bucla ruleaza la infinit. raspune" Bucla este mereu,Adevarata’, while True: decinu se va termina niciodat answer = input(‘Type a word and press enter: *) print(‘Please do not type \’’ + answer + ‘\’ again.’) Cum arata programul La pagina opusé, conditia bucla a programului monstrului a verificat s8 vada care a fost rdspunsul utilizatorului Dacé réspunsul nu este,y’, bucla se va sférsi. Bucla de mai sus nu verific& rspunsul, asa cé utilizatorul nu va putea sé o facd sa se sfarseasca. Indiferent de ceea ce este scris, >>> aceasta bucld continua s8 ruleze Type a word and press enter: tree Please do not type ‘tree’ again TINE MINTE Type a word and press enter: hippo -Blocul,forever” Please do not type ‘hippo’ again minte blocul, forever” Type a word and press enter: water | Scratch? Acesta repet codul din i | el, pana ce se apasé pe butonul Please do not type ‘water’: again rosu de stop. O bucla,while True” Type a word and press enter face exact acelasi lucru. Poate fi folosité pentru a determina un program sé continue si facd un lucru, cum ar fi s& puna intrebari sau s8 afiseze un numér, cat timp | programul ruleazé. jee SPAT DE EXPERT Daca esti prins intr-o bucl& infinita, poti s8 0 opresti din IDLE. F& clic pe fereastra shell din Python, apoi tine apasaté tasta ,CTRL’ si apasa tasta,C" Astfel ii vei cere lui IDLE s8 opreasca programul. Ai putea fi obligat s4 apesi,CTRL-C" de mai multe ori. Este acelasi lucru cu apasarea butonului rogu de stop din Scratch. Blocul,forever* misc actorul la nesfarsit padide JOACA-TE CU PYTHON Cum sa scapi din bucle — inPython Programele pot ramane blocate intr-o bucla, dar exista aaeaaS RE mereu modalitati de scdpare. Cuvantul ,,break” te scoate while din bucla (chiar si dintr-o bucla,,forever“), iar cuvantul »continue” te duce inapoi, la inceputul urmatoarei bucle. Inserarea pauzelor table = 7 Tila vara Inserarea unei pauze intr-obucls for 4 in range(1, 15): *218? face programul s8 sar’ imediat SS ae cin bata “chiar dacs esta De ana eee eee tablet) adevirat conditia buclei. Orice guess = input Na, comenzi din interiorul unei bucle ans = i * table 5 Lin obi (39 tspune cate urmeacs dups pauzd sunt if int (guess) == ans: NsebldX7Esoum ignorate. ; 9 print (‘Correct!’) _ urmatouaeghitmelesne Un apostrof si nu capatul Serie un program simplu i else: sirulut Acest program testeazéutlizatorul ie intr-un tabel de 7. Programul continua in print(‘No, it\'s’, ans) bucla pind ce se dé raspunsullatoatecele pr int (“Finished”) 12 intrebari. Scrie acest program in fereastra cod, pentru cé va fi editat mai tarziu Insereazé o,pauzé” Se poate adauga 0 ,pauza" astfel table = 7 Incdtutlizatorul s8 poaté scapa din bucla. for i in range(1,13): Programul executd o pauza daca ree print(‘What\’s’, utilizatorul scrie, stop”. guess = input() peuxeehtable, (rai) Daca guess” este egal cu if guess ‘stop’: «stop, programul sare peste restul buclei si afigeaza break Snishea® \_ Sree are table if int(guess) == ans een print(‘Correct!") cores trebare else: print(‘No, it\'s’, Le print(‘Finished’) >>> What’s 1 x 7? 1 In prima bua," No, it's 7 cmeeseev! What's 2 x 7? 14 __Valoarea lui," se schimbi la, inadoua bucts Correct! What's 3x 7? stop <————~_Acesta executa comanda de pauzi, iar programul Finished jesedinbucla . . 2 CUM SA SCAPI DIN BUCL far 3) >> What's 1 x 7? i Scrie,skip” pentru trece a skip la urmatoarea intrebare Skipping What’s 2 x 7 ? — Buclaruleazé din nou dupa cum este 14 normal, atunci cand Correct! La réspunsul este corect What’s 3 x 7? iy JOACA-TE CU PYTHON Liste Daca trebuie sa (54-55 Sirurisiliste multe date intr-un singur loc, atunci wi Propozii 132-133 ) le poti pune intr-o lista. Listele pot contine numere, far’ sens siruri, alte liste sau o combinatie dintre aceste lucruri. Ce este o lista? O lista este o structura in Python unde lucrurile sunt V Privire asupralistelor jinute in ordine. Fiecare intrare are un numar pe care il cee obese ceto Ietase et og Sinute in ordine. Flecare are Pr ghillmele simple si este separat de poti folosi pentru refering. Poti schimba, sterge sau urmatorul obiect printr-o virgula. . adauga la obiectele dintr-o list8, in orice moment. Intreaga lst se afi intre paranteze Lista este stocat in variabila myst” patrate. i , arena Lo ; Acest caracter >>> mylist = [‘apple’, ‘milk’, ‘cheese’, ‘icecream’, \j__—estefolosit pentru Wide: Cum functioneaza Iti poti imagina lista ca Dacs’ stl mylist un rind de rafturi intr-o [1 ] Inlocuiesti,milk” de pe raftul 1 bucatarie, Pe fiecare raft se ‘cugeake” afla cate un obiect din lista. Pentru a schimba un obiect, trebule 58 te refer la raftul Valoarea lui,mylist2)" ~~ este cheese" pe care se afla. [2] 1 pute si adaugioportcal in fata ~~ inghetatei seriind smylstinsert@3, ‘orange’. Acuin inghetata ar cob pe poze 4 aya mai depare Penta agjunge la un obiect de pe list, trebuie si mergi la raftul potrivit Scriind del mylist(4}* vel sterge 1, limonadea din ist vei muta tea? {In pozitia 4, in schimb Ai putea s8 adaugi un nou obiect, sie’ fa finalul liste, scrind ,mylist. ‘append( pie) Atuncl acesta va fi adaugat dupa,tea’, in pozitia 6 voctnunsi 715] oven senmestesinder Utilizarea listelor Odata ce o lista a fost creatd, pot scrie programe pentru a manipula datele din ea - intr-o bucla, de exemplu. Poti, de asemenea, s combini liste pentru Listele in Python sunt mutable Brace uncisinar \ceasta inseamné 8 se pot schimba. Poti adduga sau sterge Lista este stocatd in variabila,names* ‘obiecte sau le poti schimba ordinea. Alte functii in Python, cum S>> nas = [‘Simon’, ‘Kate’, ‘vanya' ar fi tuplurile (vezi pp. 134-135), nu Ga L yee pot fi modificate odaté ce le creezi. >>> for item in names: Acestea sunt,,nemutal print(‘Hello’, item) Corpul bucteltrebuie si fie Heller Simca retras cu patru spati >> suitcase=[[‘hat’, ‘tie’, ‘sock'],[‘bag’, ‘shoe’, ‘shirt’]] >>> print(suitcase)m ___—~ pcemara ais intreaga [[‘hat’, ‘tie’, ‘sock"],[‘bag’, ‘shoe’, ‘shirt']] >>> print tcase[1 Acesta va afisa tot ce se afld P ou ig PN oe pekanae ySuitcase[1]" [‘bag’, ‘shoe’, ‘shirt’] >>> print (suitcase [1] [2] )&— —~ Acesta vaafiga obiectul dela index 2 ‘ fn, suitcase(1}" - tine minte, Python shirt Incepe 58 numere obiectele de la zero s 7, JOACA-TE CU PYTHON Functii eerie {fara sens O functie este un fragment de cod care indeplineste eau o anumita sarcina. Aduna codul in pachet, ii da un nume sifunctii si poate fi folosit oricand daca este apelat. O functie poate fi utilizaté pentru a evita sa introduci aceleasi randuri de cod de mai multe ori. > Functii utile Python contine multe functii utile pentru realizarea anumitor sarcini. Cand o functie este apelatd, Python recupereaza codul functiei respective si apoi tl ruleaz’. Cand functia este finalizata, programul se intoarce la randul de cod care a apelat-o si ruleaza urmatoarea comanda. A Funetia »print()" A Funetia »input()"” Aceasta functie las programul si Aceasta functie este opusul functiei_—_Aceastd functie ofera un numar la trimita informatiic&tre utilizator aprint() Lasa utilizatorul s8 ofere intamplare (ca atunci cand dai cu zarul prin afisarea de instructiuni sau instructiuni sau date programultul Poate fi folosité pentru a adiuga un de rezultate pe ecran. prin introducerea acestora. element aleatoriu programetor. Realizarea si apelarea functiilor Functiile incorporate in Python nu sunt singurele care pot fi folosite. Pentru a realiza o nous functie, colecteaza codul pe care vrei sa il folosesti intr-un ,invelis” special si d8-i un nume. Acest nume - permite functiei sa fie apelata de cate ori este nevoie de ea. ~ Defineste o functie Apeleaza functia Definitia unei functi va avea mereu Scrierea numelui functiei urmat cuvantul cheie,,def" si numele functiei la de paranteze in fereastra shell apeleaza inceputul codului. functia $i arata rezultatul. Dou’ puncte marcheaza def greetingQ): ~~ sfrgtalnumelul >>> greeting() print(‘Hello!") funeyieisinceputul Hello! codiului pe carei congine aceasta Parantezele Acesta este codul Pee araté cB aceasta este o apelare de functie sinu ovariabils din interiorul functiel este apelata, iar rezultatul este atisat Transferul de date catre functii O functie are nevoie sa ji spui cu ce valori sa lucreze. De exemplu, in ,print(a, b, c)", functia ,print()” primeste valorile = 2a,” si,’ In,height(1, 45), valorile 1 si 45 sunt atribuite a functiei,,height’. Adauga parametri functiel Valorile sunt definite Valoriletransmise unel functi se numese Codul din interiorul functiei folo- -sparametti’. Parame langa numele functi sunt pusiintre paranteze, seste valorile care sunt transmise acesteia. in definitia acesteia, Apeleazd functia pentru wim sicm’ sunt paramett 2 oferirdspunsul cand ~ ama sincm"=45, Lc def height(m, ‘cm) >>> height(1, 45) total = (100 * m) + cm 145 cm tall print(total, ‘cm tall’) t \ renee ene rat e145 em ‘Afiseaza valoarea lui valoarea lui,m*trebuie si aa total" urmata de,cm tal” fie inmulits cu 100 (pentru 1 m=100.em) Recuperarea datelor de la functii Pe] Functiile sunt cele mai utile cand retransmit unele date inapoi la oe program — 0 valoare recuperata. Pentru a face o functie sa retran- ~ smita o valoare, adaugé ,return’, urmata de valoarea de recuperat. A Defineste o functie care retransmite un numar Numérul ca rezultat Functia ,input()” din Python returneazd mereu un Daca programul a folosit functia input’, a+b" ar trebui s8 adune sirurile #10" si,7" pentru a rezulta,,107" sit, chiar dac& este introdus un numar. Nowa functie de n A Numarul este mai jos retumeaza, in schimb, un num. stocat ca girin variabila,typed” def num_input (prompt) : a Enter a 10 typed = input (prompt) Enter b 7 num = int (typed) atb=17 return num Resransmitevalatea acest conertest sl u Tatum ua tesa a = num_input(‘Enter a’) sare ve ca rezultat,17" pentru 4 G funcianuminput b = num_input (‘Enter b’) ee nu situ print(‘a + b =", a + b) * 5 JOACA-TE CU PYTHON Propozitii fara sens , Buclele, functiile si listele pot fi folosite individual pentru o multime de sarcini diferite. Acestea pot fi utilizate si impreuna pentru a crea programe interesante care pot realiza sarcini chiar si mai complexe. (124-425 Bucle while 29 Liste (130-131 Functi Cum faci propozitii fara sens Acest program va crea propozitii folosind trei liste separate de cuvinte. Va alege cate un cuvant din fiecare lista si le va pune impreuné la intamplare, intr-o propozitie fara sens. Inceards folosesticuvinte iterite de cle de ic pentru. ‘asea proprilepropoiti rasens. - Introdu cele trei liste de mai jos intr-o nou’ fereastrd cod. Aceasta ainsiee sively E defineste listele care vor fifolosite Sea arian pentru a forma prope: LO este un sit name = [‘Neha’, ‘Lee’, ‘Sam’] Parantezele verb = [‘buys’, ‘rides’, “kicks! steams | [‘lion’, ‘bicycle’, ‘plane’] eet noun " intamplare din listele pe care le-ai creat. Defineste cesta incarcé functia pentru o functie care sd facd aceasta, fiindca va fifolosit& a genera un numarla de mai multe ori in program, intamplare (randint’) from random import. sa ez : a nt sunt def pick(words): iuaiea orient num_words = len(words) iste de orice lungime) ‘ 7 lege un numarla num_picked = randint(O, num_words - 1)< ~~ intamplare care se referé word_picked = words (num_picked] dniso ene return word_picked me b Fiecare propozitie este format din cuvinte alese la 2 fost ales in variabila word_picked" 7 PROPOZITII FARA SENS Afiseaza propozitia fara sens, la intamplare, prin rularea functiei pick” o data pentru fiecare dintre Adauga un,a" astfel cele trei liste. Utilizeazé comanda, print” pentru incat propozitia sa Saas pean aiba sens (vez mai jos) print(pick(name), pick(verb), ‘a’, pick(noun), end=‘.\n’) NS Acesta adauga un %._Salveaza si ruleazé programul pentru punt a fina, n 4 aobtine o propozitie fara sens din timp ce,/n" incepe liste de nume, verbe si substantive. un rand now Neha kicks a bicycle. J Propozitia este aleas la intimptare de iecare dat cand programulruleaza Propozitii fara sens la nesfarsit! cas SEAT DE EXPERT. O buclé forever poate fi adaugata programului cu propozitii fara sens pentru a-I face sd ruleze fara | oprire sau pana ce utilizatorul apasa ,Ctrl-C” pentru Este foarte important sé scrii un | aiesi din bucla. program care poate fiintelescu | usurin3. Astfel, programul poate fischimbat mai usor in viitor, Programul continua s8 afigeze propoziti fara pentru cé nu vei finevoit sa rezolvi_ | sens in cazul in care comanda ,print” este misterul functionarii acestuia! ambalata intr-o bucla ,while True”. while True:<___— Ambsleaza comands print nt-o bucts print(pick(name), pick(verb), ‘a A ‘AfigeazS 0 nou’ propozitie de iecare Input Ce _~ Gata cand este apasatd tasta, Enter” ‘reeze propoaiilantémplare ib Funcfia input)” asteapté ca L - utilizatorul s8 apese pe tasta. Sam rides a Lion. Enter” inainte de a afisa | orice alta propozitie. Altfel, Neha kicks a plane. le-arafiga prea repede Lee buys a bicycle. pentru a putea fi citite. » pick(noun), end=*.") . JOACA-TE CU PYTHON Tupluri si dictionare Python foloseste liste pentru a tine datele in ordine. Are si alte tipuri de date pentru stocarea de informatii, numite »tupluri” si,dictionare“. Tipurile de date precum acestea, care contin o multime de obiecte, se numesc,,containere”. (110-111 Tipuri de date (128-129 Liste Tupluri Tuplurile seamana un pic cu listele, dar obiectele din interiorul lor nu pot fi modificate, Odata ce un tuplu este stabilit, mane mereu la fel. Tuplurile sunt yo paranteze Extragerea unui obiect diner tpl Pentru a obtine un obiect dintr-un >>> dragonB[2] tuplufolosest pozifaacestuiain 4 gg f tuplu (indexul lui). Tuplurile incep. humaratoarea de lazer, exact ca \ peestaseterens listele si siruril. ‘objectul din pozitia 2 >>> dragonA >>> dragonB >> print(name, age, height) name’, ,age" si,height’ Python sparge ‘tuplul ih trel obiecte, punand c&te unul in Sam 15 1.7 fiecare variabila NO Oblectele care alcdtuiesctuplul .dragon& sunt afgate separat Creeazd olisté de tupluri —_Listele suntintre _— numita dragons" paranteze patrate [> Punerea tuplurilor intr-o lista v Tuplurile pot fi puse intr-o lista pea EON Selo ee on Ammar scone], deoarece containerele pot intra >>> print (dragons) uunul in atul. Foloseste acest cod ta one pentruia ciea o Nsts'de tuplcn [('Sam’, 15, 1.7), (‘Fiona’, 16, 1.68)] Fiecare tuplu este inconjurat de — XN Python afigeaza toate paranteze rotunde in interiorul obiectele din list, nu parantezelor patrate ae listel doar numele tuplurilor oy TUPLURI SI DICTIONARE ictionare ictionarele sunt la fel ca listele, doar ca au etichete. Aceste etichete, ‘Aumite ,chei, identifica obiectele in locul numerelor de index. Fiecare ‘obiect dintr-un dictionar are o cheie si o valoare. Obiectele dintr-un dictionar nu trebuie sé stea intr-o anumita ordine, iar continutul unui dictionar poate fi schimbat. Dictionaree Obietetednteun Yolosese dleoner sunt Folosete dous puncte > Creeaziundictionar ——acolade separate de virgule ___intre ocheie so valoare Programul creeazé un —Yy A Cee armeage’ 39> age = {"Mary’: 10¥ ‘Sanjay’! 8) abectestenumeleuner 9 7 crsoaneiarvaloarea, 0 cele unctionea valoarestocatsin parsta tafelcaunnumir dicionar (une mereu dendex dupa dous puncte) <] Print pentru >>> print (age) <~Numele dictonaruti dictionar {'Sanjay’: 8, ‘Mary’: 10} Ordinea obiectelor poate fi schimbata, ‘Cheia pentru acest — Valoarea lui pentru ca pozitia obiect este Sanjay” Numele aie obiectelor intr-un dictionarului . dictionar nu este fixs. —— noua cheie [> Adauga un obiect nou . “ane La dictionar poate fi >>> age[‘Owen’] = 11 adgugatd o noua valoare >>> print(age) rind acne Leese: Hh, "ality a ay Menke. A ‘Adauga un nou — obiectla dictionar — Noua valoare este NL Valorile existente 2cum ndiciona suntinc Teonenaieeci> i , <1 Schimba o valoare >>> age[‘Owen'] = \tribuie o noua valoare li Ee Se euctin caer onee Atribuie 0 noua valoare >>> print (age) unei chel existente pentru }-i schimba valoare {'Owen?: 12 8, ‘Mary’: 10) 2:1 schimba valoarea. “Sanjay Valoarea lul Owen" ate Acesta sterge oblectul etichetat,Owen" > $terge un obiect ‘owen’ Obiectl $tergerea unui obiect dintr-un >>> del age[‘Owen’] etichetat ,Owen* dictionar nu afecteaza alte obiecte: >>> print (age) ‘nu mal apare ele sunt identificate prin cheia lor, 7 aa . c in dictionar nu prin pozita in dicfionar {*Sanjay’: 8, ‘Mary’: 10} - 2 JOACA-TE CU PYTHON Liste in variabile Hiratereest in Python (128-129 Liste Modul in care Python stocheaza liste in va poate parea ciudat la inceput. Dar, daca te uiti in culise, totul va avea sens. Mai tii minte cum variabilele ne ~. stocheaza doar valori? Variabilele sunt precum cutiile de valori. Valoarea dintr-o variabila poate fi copiata gi stocata in alta. Este ca si cum ai fotocopia \ Cum functioneaza variabilele? valoarea continuta in cutia,a” si ai stoca Fiecare variabild este ca o cutie care contine o copie in cutia,b” © bucati de hartie cu o valoare trecuté pe ea. Atribuie o valoare un: le Atribuie valoarea 2 variabilei,a’ confinutt ula tb* apoiatribuie valoarea dina" varibilei,b’, >>> b = aK Valoarea 2 este copiata si stocata in,.b". Se Acesta copiazé >>> print('a =", a a=2b=2 Acum ,a" si,b* contin 7 Acesta afigeazd numele ambele valoarea 2 variabilelor cu valorle lor. Schimbi o valoare Dacd schimbi valoarea stocatd intro”? @ = 100 <——~Schimba valoarea din,a* in 100 variabila, nu va afecta valoarea stocata in >>> print(‘a =", a, ‘b =", b) alté variabila. In acelasi mod, schimbarea a ceea ce este scris pe o bucata de hartie a= 100 b=2 in cutia,a” nu va afecta ce este scris NO pe hartia din cutia,b*. ‘Acum,a" confine 100, dar,b* contine inca 2 (GP Schimbé 0 valoare diferits > Schimba valoarea din,b* Ia 22. mz nb 422) Varta” confine in contnsare 10 >>> print(‘a =", a, b) esi valoarea lui,b" a fost copiaté din a" lainceput, ele sunt acum independente~ 2 = 100 b = 22 schimbarea lui ,b" nu modificé a” XN 4b" confine acum 22, dar 12" are in continuare 100 a . 5 LISTE IN vaniasiie BZ Ce se intampla daca o lista este pusa intr-o variabila? Copierea valorii dintr-o variabilé creeazd doua copii independente ale valorii. Aceasta functioneaza daca valoarea este un numar, dar ce se intampla cu alte tipuri de valori? Daca 0 variabilé contine o lista, functioneaza un pic diferit. Foloseste paranteze patrate pentru a crea o list’ Copiaza o lists = Coon ‘Acestaafiseaz4 numele Stocheaza lista[1,2,3]in 77? ListA = [1, 2, 3] variabilelor altri de valorile variabila numita ist: Apo, >>> LlistB = Lista lor pentrua vedea ce este in stocheazi valoarea lui, lista” fntr-o alta variabila numita alistB". Acum, ambele variabile contin [1, 2, 3]. ullsth"silistB" au ambele aceeasi valoare Schimba lista A Schimba valoarea in slista(1]" a 1000.,lstB(11" confine si ea acum tot 1000. Schimbarea listei originale a modifcat si copia listei >>> ListaT] listA = [1, Acesta este cel de al trellea obiect din lista Schimbi lista B NY Schimba valoarea lui olistB(2]" In 75, ,istAL2I" este gi ea acum tot 75. Schimbarea copiei istei a schimbat si lista r (ap273] 9 A Ceseintampla? variabila care contine o list nu contine lista insasi ci doar Un link spre ea, Copierea valorit lui lista” copiaz8 silinkul. ‘Asa cdlistA” iglistB" contin un link ctre aceeasi lst lista = [1, >>> print(‘listaA listA = [1, 2, 3] listB = >>> print(‘Lista =", >>> ListB[2] = >>> print(‘lista =", 1000, 75] listB = [1, 1000, 75] interiorul acestora “‘ListB =", (1, 2, 3] lista, listB) Acesta schimba al dotlea obiect din list3 pentru c listele incep de la zero 1000 listA, ‘listB =", listB) 1000, 3] ListB = [1, 1000, 3] Al doilea obiect atat din lista, cat si din alist" a fost schimbat 75 listA, ‘listB =", listB) NN Altreilea obiect atat din lista’, cat din listB" a fost schimbat cee) SFAT DE EXPERT Pentru a face o copie separata a une liste, foloseste functia ,copy* ,listC* va contine un link catre o list complet nous, ale carei valori sunt copii ale acelora din lista’, Daca schimbi, istC* fecta, lista’, iar schimbarea lui, lista” nu a glist”, >>> ListC = ListA.copy() =" . JOACA-TE CU PYTHON Variabile si functii Peet Variabilele create intr-o functie (variabile locale) oer 18-199) si cele create in programul principal (variabile globale) functioneaza in mod diferit. Variabilele locale sunt ca vedetele de ‘inema inte-o masiné cu fereste prin care ‘nu se vede nimic -se afl in masina Variabile locale (functie, dar nu le poate vedea nimeni Variabilele locale exista doar in interiorul unei functii unice, asa c programul principal si alte functii nu le pot folosi. Daca incerci sa folosesti o variabila locala in afara functiei, apare un mesaj de eroare. Variabila in interiorul unei functii Variabila in exteriorul unei functii Creeaza o variabila locala numit,,a” Daca incerci sd afisezi,,a” direct din Programul principal nu stie ce Ininterorulfunc’. Afgeaz4 valoarea lua” programul principal, va da eroare.,2” exist estes aga cbafigeazd un apelandand ,func1" din programul principal. doar in interiorul ,funcl”, mesaj de eroare >>> def funcl(): >>> print(a) a= 10 Traceback (most recent call last): print(a) File “”, line 1, in >>> funcl() Brae print (a) afigeazé valoarea 10 atribuita tia” NameError: name ‘a’ is not defined Variabile globale variabila creata in programul principal este numita variabilé global. Alte functii o pot citi, Vesiabilele alobate sunt ca.oamenii care dar nu fi pot schimba valoarea. f ‘| — merg pe stradé ~ 2 toatd lumea le . poate vedea p) Aceeasi variabila global Putem, de asemenea, afisa.b" direct din Variabila in exteriorul uni Creeaza o variabila global numita,b" ‘in programul principal. Noua functie (,func2”) programul principal..,b" poate fi vazut oriunde poate citi valoarea lub" gio poate afisa, pentru cé nua fost creat in interiorul unei funct -fune2" poate >>> b = 1000 ee aera >>> print(b) b>> def func2Q: —brpentuel.br ce woe a este o varlabila ee print(b)< slobata NC : —. Variabila globala .b* poate fi >>> func2() folosita oriunde in programul ‘igarea func2" i oferd principal 1000<__— valoares stocaté In." VARIABILE $1 FUNCTII le ca aport pentru funct! and 0 variabila este folosita ca aport pentru o functie, valoarea ei este copiata intr-o noua variabild locala. Asa ca schimbarea valorii acestei noi variabile locale din interiorul functiei nu va schimba valoarea variabilei originale. ‘Schimbarea valorilor din interiorul unei variabile sfunc3" foloseste.y' care este o variabild locals, Afigeazi valoarea lui,y", apoi schimba respectiva valoare Jn, bread” si afigeaza noua valoare. >>> def func3(y):i~x_wiconune fone print(y) acesteia cand este y = ‘bread’ apelata.fune3" print (y)<__ Ati.ycomine >>> z= ‘butter’ —— jeermcrecaz ovata aE Dis global murta-2 Aportul,y" contine acum butter \__ ‘owes luce wonfeats ee tones cntemeapatol func3*" Afigarea variabilei Afigarea valorii lui,z" dupa ce este apelata,func3" arata cd aceasta nu s-a schimbat. Apelarea ,func3" copiaza valoarea din,2” (,butter") in variabila locala,y* >>> print(Z)<__ Afiseazs valoarea in variabila butter Se NX Variabila locala,y" a,func3" pistreazé 0 copie a valoriln.z* Degi,y*a fost schimbata in,bread’ vvaloarea in variabila globala,2" nu este afectata si este in continuare sbutter* Mascarea unei variabile globale O variabila globala nu poate fi schimbata de o functie. O functie care incearca s schimbe 0 variabila globala creeaza, de fapt, o variabila locala cu acelasi nume. Aceasta acopera, sau ,mascheaza’ ‘Schimbarea unei ‘0 variabila globala cu o versiune locala. cae) SPAT DE EXPERT Afigeaza va- 5 Valoarea Variabilei globale,c” >>> def func4(): variabilet | ise aloca valoarea 12345. iy globale,c” Exista Or moduri | .func4” ji da lui,c* valoarea c= 555 de a apela functii. | rear at rane “function(a) loarealui,c* | variabila noastrd global’ ,c” a fost schimbats, >>> funed() \_ 555 Afigeaza variabila Dacé afigam,c" din exteriorul functiei, vedem 3,c” nu s-a schimbat deloc. ,func4” afiseaza doar >>> print(c) 12345 ine locale - numite, de asemenea, .c’ schimbata In interiorul wfunca” Valoarea variabilet globale,c* nu. fost |_ In Python, fragmentele de date se humesc, obiecte”, Unele functii sunt apelate prin transferul asupra acestora a obiectului (,2") | Alte functii sunt apelate prin | adaugarea numelui acestora la | finalul obiectului (,2"), dupa punct.

S-ar putea să vă placă și