Sunteți pe pagina 1din 13

Introducere in Python - Partea I 13.07.2009 Python este un limbaj de programare*interpretat*.

In acest tutorial vei putea citi despre variabile, operatori matematici si booleeni, bucla while si instructiuni conditionale. 6441 afisari (7 voturi) Instalarea Python Ce este python? Python este un limbaj de programare*interpretat*. Pentru cei care nu stiu, un limbaj de programare este ceea ce scrii pentru a-i spune unui calculator ce are de facut. Oricum, computerul nu citeste limbajul in mod direct - exista sute de limbaje de programare si nu ar putea sa le inteleaga pe toate. Deci, cand cineva scrie un program, il va scrie in limbajul selectat si apoi il va compila - aceasta inseamna transformarea intr-o multime de 0 si de 1, pe care computerul le poate intelege rapid si usor. Diversele programele pe care le poti cumpara pentru calculatorul tau sunt deja compilate pentru Windows - daca incerci sa deschizi un astfel de program cu Notepad sau Wordpad, vei vedea doar o multime de caractere ciudate. Un program care este compilat pentru Windows nu va functiona pe un alt sistem de operare. Diferenta dintre Python si astfel de programe este ca acest limbaj nu este niciodata compilat in totalitate - la rulare, fiecare instructiune este transformata in serii de 0 si 1 pe care computerul tau le poate intelege. In plus, totul este facut pe loc codul este executat pe masura ce rulezi programul. Daca ai iesi din program si ai reveni in alta zi, bitii ar fi din nou compilati. Ti se pare a fi pierdere de timp? Poate, dar asta inseamna ca un program Python poate rula pe diferite sisteme de operare, fara a necesita ajustari. Ai putea trimite programul unui prieten, care utilizeaza un alt tip de computer. Sau ai putea posta programul pe Internet, de unde sa fie descarcat de persoane lucrand pe calculatoare diferite. Acesta este miracolul unui limbaj de programare interpretat - este un limbaj pe care orice sistem il poate INTELEGE. Cum se instaleaza python 1. Mai intai downloadeaza Python urmand acest link(http://www.python.org/download/ <http://www.python.org/download/>). Pentru acest tutorial a fost utilizata versiunea 2.6.2. 2. Executa fisierul downloadat si urmeaza comenzile. OK! Sa speram ca totul a mers bine! Acum, pentru a testa daca functioneaza, tasteaza urmatoarea instructiune in fereastra de comenzi daca lucrezi pe Windows, cauta Python in Programs, acceseaza *Python (command line)*, apoi ruleaza urmatoarea comanda: print "Hello World!" 4 20 min Rating

Incearca, vezi ce se intampla. Pentru a inchide fereastra, tasteaza 'quit()', apoi apasa Enter. 'Programe' foarte simple Introducere OK! Am instalat python, si acum? Pai, sa programam! Si este usor (cel putin pentru moment). Python face sa fie usor de rulat linii singulare de cod - programe mono-liniare. Sa incercam! Deschidem IDLE Mergi in meniul de start, gaseste Python si ruleaza programul denumit 'IDLE' (Vine de la Integrated Development Environment - Mediu Integrat de Dezvoltare). Acum te afli in mediul IDLE. Acesta este locul in care iti vei petrece majoritatea timpului. Aici poti deschide o noua fereastra pentru a scrie un program sau poti pierde vremea cu linii singulare de cod, ceea ce vom si face. Tasteaza urmatoarele si apasa enter: >>> print "Hello World!" Ce s-a intamplat? Tocmai ai creat un program care afiseaza cuvintele 'Hello, World'. Mediul IDLE in care te afli compileaza imediat orice ai tastat. Este extrem de util pentru testare, de exemplu la definirea variabilelor, sau pentru a verifica daca o anumita linie de cod functioneaza. Matematica in Python Cu Python poti efectua anumite operatii matematice, cum ar fi: - Adunare >>> 1 + 1 2 >>> 20+80 100 >>> 18294+449566 467860 -Scadere >>> 6-5 1 - Inmultire >>> 2*5 10 - Ridicare la putere

>>> 5**2 25 - Impartire >>> 21/3 7 >>> 23/3 7 >>> 23.0/3.0 7.6666? - Restul impartirii >>> 23%3 2 >>> 49%10 9 In plus, poti afisa sume si variabile printr-un singur apel al functiei print, utilizand virgula pentru a separa diferitele sectiuni: >>> print "un kilobyte este 2^10 bytes, sau", 2**10, "bytes" un kilobyte este 2^10 bytes, sau 1024 bytes In tabelul de mai jos poti vedea toti operatorii Python prezentati mai sus. *Operator*

*Nume*

*Exemplu*

*Rezultat* +

Adunare

4+5

9 -

Scadere

8-5

3 *

Inmultire

4*5

20 /

Impartire

19/3

6 %

Restul impartirii

19%3

5 **

Ridicare la putere

2**4

16

Iti amintesti de ordinea operatiilor din matematica? Se aplica si in python. Iata, ca sa iti amintesti: 1. 2. 3. 4. paranteze() ridicare la putere ** inmultire *, impartire , si restul impartirii % adunare + si scadere Ordinea operatiilor Iata cateva exemple pe care le-ai putea incerca: >>> 1 + 2 * 3 7 >>> (1 + 2) * 3 9 In primul exemplu, computerul calculeaza mai intai 2 * 3, apoi adauga 1. Aceasta, deoarece inmultirea este efectuata inaintea adunarii. In cel de-al doilea exemplu, computerul calculeaza mai intai 1 + 2, apoi inmulteste cu 3. Aceasta, din cauza parantezelor care incadreaza adunarea. Mai aminteste-ti si ca in matematica se calculeaza de la stanga la dreapta, exceptand cazul in care exista paranteze. Paratezele interioare sunt calculate primele. Priveste urmatoarele exemple: >>> 4 - 40 - 3 -39 >>> 4 - (40 - 3) -33 In primul exemplu, se calculeaza intai 4 -40, apoi - 3. In cel de-al doilea exemplu, se calculeaza mai intai 40 - 3 si apoi se scade din 4. Comentarii Ultimul lucru pe care trebuie sa-l cunosti pentru a putea trece la programe cu mai multe linii de cod sunt comentariile. Tasteaza urmatoarele (si da, rezultatul executiei este afisat): >>> #Iata un comentariu >>> Un comentariu este o portiune de cod care nu este rulata. In python, creezi un comentariu punand caracterul # inainte. Acesta va ascunde tot ce se afla dupa el in acea linie si nimic inainte. Deci ai putea tasta urmatoarele:

>>> print "mancarea e foarte buna" #primul comentariu mancarea e foarte buna >>># print "mancarea e foarte buna" (nu se intampla nimic deoarece codul se afla dupa #) >>> print "mancarea e foarte buna" primul comentariu (vei primi un mesaj de eroare deoarece nu ai folosit # pentru comentariu Comentariile sunt importante pentru a adauga informatiile necesare altui programator pentru a intelege codul, dar nu influenteaza cu nimic computerul. In plus, poti utiliza comentariile pentru a deactiva anumite portiuni de cod, urmand sa le reactivezi mai tarziu. Variabile si scripturi Introducere Deci, putem executa programe monoliniare. Si? Vrei sa trimiti programele altor oameni, pentru a le putea utiliza, fara sa stie cum sa le scrie. Editare in Notepad Scrierea programelor din python intr-un fisier, este FOARTE usoara. Programele Python sunt simple documente text - le poti deschide in notepad pentru a le observa. Deci, deschide notepad si tasteaza urmatoarele: #Un program simplu. print "Mary had a little lamb," print "it's fleece was white as snow;" print "and everywhere that Mary went", print "her lamb was sure to go." Pastreaza totul la fel, inclusiv pozitionarea virgulelor. Salveaza fisierul ca fiind 'mary.py' - si asigura-te ca notepad nu adauga extensia .txt. Dezactiveaza 'Hide known file extensions' in Windows Explorer, daca iti va fi mai usor. Utilizarea mediului IDLE Acum, deschide programul *Python IDLE *(ar trebui sa fie in meniul de start). Click *File > Open*, gaseste *mary.py * si deschide-l. Daca nu poti gasi *mary.py*, seteaza dialogul de deschidere la *'Files of type: All Files (*)*'. Se va deschide o noua fereastra, prezentand programul pe care tocmai l-ai scris. Pentru a rula programul, click *Run>Run Module* (sau doar apasa *F5*). Programul va rula in ecranul principal Python (Denumit *Python Shell*) si va afisa urmatoarele: Mary had a little lamb, it's fleece was white as snow; and everywhere that Mary went her lamb was sure to go.

Mai poti utiliza si IDLE pentru a crea programe Python, asa cum ai facut in notepad. Pur si simplu acceseaza *File > New Window*. De acum vei scrie toate programele in python IDLE - am folosit notepad doar ca demonstratie pentru a iti arata ca un fisier .*py* este doar un simplu fisier text, pe care oricine il poate vedea. Exista cateva aspecte de mentionat: * Mai intai, comentariul nu a fost afisat. Aceasta este bine, deoarece, aminteste-ti - comentariile nu sunt compilate. (incearca sa compilezi dupa indepartarea # - va rezulta o invalmaseala) * Apoi, a 3-a si a 4-a linie au fost concatenate, deoarece exista o virgula la sfarsitul celei de-a treia linii de cod. Aceasta opreste programul din a crea o noua linie pe ecran atunci cand afiseaza textul. Variabile Acum sa incepem introducerea variabilelor. Variabilele stocheaza o valoare care poate fi analizata sau schimbata ulterior. Pentru a crea un program care utilizeaza variabile, deschide IDLE, apoi acceseaza *File>New Window* - apare o noua fereastra in care este usor sa editezi programe. Tasteaza urmatoarele (sau doar copy si paste - insa citeste cu multa atentie si compara codul cu rezultatul oferit de catre program): #utilizarea variabilelor print "Acest program este un test pentru variabile" v = 1 print "Valoarea lui v este acum", v v = v + 1 print "v este incrementat cu 1, luand valoarea", v v = 51 print "v poate retine orice valoare numerica" print "de exemplu, v este acum", v print "v inmultit cu 5 este", v*5 print "dar valoare lui v ramane", v print "pentru a retine aceasta valoare in, trebuie sa scrii v = v * 5" v = v * 5 print "iata, v este acum", v, "si nu", v / 5 Siruri de caractere Dupa cum poti observa, variabilele stocheaza valori pe care le poti schimba oricand si le utiliza mai tarziu. Poti insa atasa nu numai numere, ci si text. O variabila care suporta text se numeste string. Incearca acest program: #variabile de tip string si concatenarea lor word1 = "Buna" word2 = "dimineata" word3 = "si tie!" print word1, word2 sentence = word1 + " " + word2 + " " +word3 print sentence Rezultatul va fi: Buna dimineata Buna dimineata si tie!

Dupa cum poti vedea, variabilele de mai sus retin text. Denumirile variabilelor pot contine mai mult decat o litera - aici avem word1, word2, and word3. Dupa cum mai poti observa, sirurile de caractere pot fi unite (concatenate) pentru a crea cuvinte sau propozitii mai lungi. Oricum, concatenarea nu adauga spatii intre cuvinte - de aceea trebuie sa adaugi tu spatiile punand " " intre elemente. Bucle si instructiuni conditionale Introducere (Lectia finala inainte de a interactiona cu utilizatorii. Nu-i asa ca esti nerabdator?) Imagineaza-ti ca ai avea nevoie ca un program sa execute ceva de 20 de ori. Ce ai face? Ai copia si atasa codul de 20 de ori si ai avea un program practic necitibil, ca sa nu mentionez incetineala si inutilitatea. Sau i-ai putea spune computerului sa repete o portiune de cod intre punctul A si punctul B pana cand trebuie sa se opreasca. Aceasta este o bucla. Bucla 'while' Urmatoarele sunt exemple de bucle de tip 'while': a = 0 while a < 10: a = a + 1 print a Cum functioneaza acest program? Iata "traducerea" sa in romana: 'a' este 0 Cat timp 'a' este mai mic decat 10, executa urmatoarele: Mareste valoarea 'a' cu 1. Afiseaza valoarea 'a'. Ce face? Sa vedem ce ar 'gandi' computerul cand este in bucla 'while': #UITA-TE REPEDE PE URMATORUL COD #(Arata lung, dar este foarte simplu) Este'a' mai mic decat 10? DA (este 0) Mareste 'a' cu o unitate (este 1) Afiseaza valoarea lui 'a' (1) Este'a' mai mic decat 10? DA (este 1) Mareste 'a' cu o unitate (este 2) Afiseaza valoarea lui 'a' (2) Este'a' mai mic decat 10? DA (este 2) Mareste 'a' cu o unitate (este 3) Afiseaza valoarea lui 'a' (3) Este'a' mai mic decat 10? DA (este 3) Mareste 'a' cu o unitate (este 4) Afiseaza valoarea lui 'a' (4)

Este'a' mai mic decat 10? DA (este 4) Mareste 'a' cu o unitate (este 5) Afiseaza valoarea lui 'a' (5) Este'a' mai mic decat 10? DA (este 5) Mareste 'a' cu o unitate (este 6) Afiseaza valoarea lui 'a' (6) Este'a' mai mic decat 10? DA (este 6) Mareste 'a' cu o unitate (este 7) Afiseaza valoarea lui 'a' (7) Este'a' mai mic decat 10? DA (este 7) Mareste 'a' cu o unitate (este 8) Afiseaza valoarea lui 'a' (8) Este'a' mai mic decat 10? DA (este 8) Mareste 'a' cu o unitate (este 9) Afiseaza valoarea lui 'a' (9) Este'a' mai mic decat 10? DA (este 9) Mareste 'a' cu o unitate (este 10) Afiseaza valoarea lui 'a' (10) Este'a' mai mic decat 10? NU (este 10, deci nu e mai mic decat 10) Iesi din bucla Nu a mai ramas cod de executat, deci iesi din program Pe scurt, incearca sa gandesti astfel atunci cand scrii bucle 'while': while {conditie pentru care bucla continua}: {codul din interiorul buclei} {indenteaza-l, de obicei cu 4 spatii} {codul de aici nu face parte din bucla} {deoarece nu este indentat } Iata si un alt exemplu: #EXEMPLU #Scrie acest cod si executa-l x = 10 while x != 0: print x x = x - 1 print "wow, am decrementat variabila x si acum are valoarea", x print "Am iesit din bucla." Aminteste-ti, pentru a crea un program, deschizi IDLE, accesezi *File > New Window*, tastezi programul in noua fereastra, apoi apesi *F5* pentru a rula. Expresii Booleene Ce scrii in zona marcata {conditie pentru care bucla continua}? Raspunsul este o expresie booleana. Poftim? Un concept uitat pentru non-matematicienii de aici. Nu conteaza, o expresie booleana semnifica doar o intrebare la care se poate raspunde

cu TRUE (adevarat) sau FALSE (fals). De exemplu, daca vrei sa spui ca varsta ta este aceeasi cu a persoanei de langa tine, ai scrie: Varsta mea == varsta persoanei de langa mine Si afirmatia ar fi TRUE. Daca ai fi mai tanar decat respectiva persoana, ai spune: Varsta mea < varsta persoanei de langa mine Si afirmatia ar fi TRUE. Daca tu ai fi spus urmatoarele si persoana de langa tine ar fi mai tanara decat tine: Varsta mea < varsta persoanei de langa mine Afirmatia ar fi FALSE - adevarul este exact contrariul. Iata cum gandeste o bucla - daca expresia este true, continua. Daca este false, nu mai continua. Tinand cont de aceasta, sa privim operatorii (simboluri care reprezinta o actiune) care sunt implicati in expresii booleene: Operatori booleeni <

mai mic <=

mai mic sau egal cu >

mai mare >=

mai mare sau egal cu !=

nu este egal cu <>

nu este egal cu (alternativ) ==

egal cu Nu confunda '=' cu '=='. Operatorul '=' efectueaza o atribuire (obiectul din stanga ia valoarea obiectului din dreapta), in timp ce operatorul '==' verifica daca obiectul din stanga este egal cu cel din dreapta si returneaza true or false. Instructiuni conditionale OK! Am acoperit (sper) buclele 'while'. Acum sa analizam ceva diferit instructiunile conditionale. Instructiunile conditionale reprezinta sectiuni de cod care sunt rulate daca sunt indeplinite anumite conditii. Sunt similare buclei 'while' pe care tocmai ai scris-o, care ruleaza doar cand x nu este egal cu 0, cu diferenta ca instructiunile conditionale sunt rulate doar o singura data. Cea mai intalnita instructiune de acest tip (in orice limbaj de programare) este '*if*'. Iata cum actioneaza: if {conditii ce trebuiesc indeplinite }: {executa asta} {si asta} {si asta} {acest cod este executat oricum } {pentru ca nu este indentat } Iata si un exemplu: #EXEMPLUL 1 y = 1 if y == 1: print "y este egal 1, doar verificam" #EXEMPLUL 2 print "Vom afisa numerele pare pana la 20" n = 1 while n <= 20: if n % 2 == 0: print n n = n + 1 print "am terminat." Exemplul 2 este putin mai complicat. Bucla *while* incrementeaza valoarea lui n de la 1 la 20, in timp ce instructiunea *if* verifica daca n este par. Aminteste-ti ca operatorul % calculeaza restul impartirii. In acest caz, daca este indeplinita conditia *n % 2 = 0*, inseamna ca n este par, deci valoarea lui va fi afisata. 'else' si 'elif' - Cand conditia nu este indeplinita Sunt multe moduri in care poti utiliza instructiunea 'if'. Daca vrei sa specifici o actiune alternativa pentru cazul in care conditia nu este indeplinita, poti utiliza *else* si *elif*.'else' spune pur si simplu computerului ca sa faca in cazul in care conditia este false. De exemplu, citeste urmatoarele:

a = 1 if a > 5: print "Asta nu trebuie sa se intample." else: print "Asta trebuie sa se intample." 'a' nu este mai mare decat cinci, deci va fi executat codul din ramura 'else' 'elif' este doar o modalitate mai scurta de a spune 'else if'. De exemplu: z = 4 if z > 70: print "Ceva rau s-a intamplat " elif z < 7: print "Asta e normal " Instructiunea 'if' impreuna cu 'else' si 'elif' urmeaza acest tipar: if {conditie 1}: {executa acest elif {conditie 2}: {executa acest elif {conditie 3}: {executa acest else: {executa acest cod} cod} cod} cod}

'Ceea ce trebuie sa retii este ca poti avea oricate declaratii *elif*, dar o singura instructiune *else*, care trebuie pusa la sfarsit. Un alt lucru foarte important este ca trebuie sa inchei cu : (doua puncte) fiecare linie ce contine if, elif, else sau while. Indentarea codului Indentarea codului este o practica intalnita in mai toate limbajele de programare, dar in Python este o necesitate. Aceasta inseamna ca daca o bucla 'while' contine 5 linii de cod, trebuie sa pui un anumit numar de spatii la inceputul fiecarei dintre cele cinci linii. Iata un exemplu: a = 10 while a > 0: print a if a > 5: print "a este mare!" elif a % 2 != 0: print "a este impar" print "si mai mic sau egal decat 5" else: print "acest numar nu este mai mare decat 5" print "si nu este impar" a = a - 1 print "am decrementat a cu o unitate" print "daca este mai mare ca 0, repetam bucla" print "se pare ca a nu este mai mare ca 0" print "bucla s-a terminat!" Observa cele trei nivele de indentare:

* Fiecare linie din primul nivel incepe fara spatii. Este codul principal si va fi executat mereu. * Fiecare linie din cel de-al doilea nivel incepe cu patru spatii. Cand exista un 'if' sau o bucla la primul nivel, tot ce se afla la al doilea nivel va fi considerat un singur bloc de cod, pana cand incepe o noua linie din primul nivel. * Fiecare linie din cel de-al treilea nivel incepe cu 8 spatii. s.a.m.d In afara de while, mai exista un tip de bucla denumita *for*, despre care vei putea citi in urmatoarele tutoriale. Copyright 2008-2010 E-LEARN.ro. Toate drepturile rezervate. Conceput si realizat de Neokinetics Software.