Documente Academic
Documente Profesional
Documente Cultură
Introducere în Python
Corneliu Agapi
Elemente
de
Programare
1
Elemente de programare
Introducere în Python
Corneliu Agapi
ALGORITMI
La finalul acestui capitol, veți putea să:
Definiți termenul de secvență de instrucțiuni și să identificați scopul utilizării
secvențelor de instrucțiuni în crearea algoritmilor.
Recunoașteți metodele posibile de reprezentare a problemelor: scheme logice,
pseudocod
Recunoașteți simbolurile din schemele logice, precum: start/stop, proces, decizie,
intrare/ieșire, conector, săgeată
Identificați secvențe de operații reprezentate în cadrul unei scheme logice sau unui
pseudocod.
Scrieți un algoritm corect pe baza unei descrieri, utilizând o schemă logică sau un
pseudocod
Remediați erorile dintr-un algoritm precum: elemente de program lipsă, secvență
incorectă de instrucțiuni, rezultat incorect.
2
Elemente de programare
Introducere în Python
Corneliu Agapi
Secvențe de instrucțiuni
Algoritmul este o succesiune finită de pași care rezolvă o anumită cerință/problemă. Altfel
spus, algoritmii reprezintă probleme complexe descompuse în pași sau instrucțiuni mai
simple. În majoritatea algoritmilor, instrucțiunile sunt executate una după cealaltă, într-o
anumită ordine (secvență). O secvență reprezintă un număr de instrucțiuni simple ce ar fi
trebui executate una după cealaltă.
În majoritatea algoritmilor, contează ordinea de executare a instrucțiunilor. Un robot trebuie
să pună amestecul de ingrediente în tavă înainte de a introduce tava în cuptor. Proiectarea
secvenței de instrucțiuni reprezintă o competență crucială în programare. Un programator
trebuie să se asigure că toate acțiunile cerute sunt executate în ordinea corectă pentru a
îndeplini sarcina sau setul de sarcini. O secvență de instrucțiuni este metoda fundamentală
de control în cadrul unui program. Secvența de instrucțiuni este decisă în etapa de proiectare
a programului, unde se utilizează algoritmi și scheme logice pentru a crea cea mai eficientă
și corectă secvență de control a programului.
Intrare și ieșire
Instrucțiunile utilizează de cele mai multe ori informații din lumea exterioară computerului,
pe care apoi le prelucrează într-un anumit fel. Programele primesc informațiile de la
utilizator prin intermediul datelor de intrare (input) și generează un rezultat, anumite date
de ieșire (output).
Date de intrare (input)
Reprezintă o valoare aflată în afara computerului, necesară pentru executarea
instrucțiunilor.
De exemplu: o măsurare a temperaturii sau un număr tastat pe tastatura unui sistem de
securitate.
Date de ieșire (output)
Reprezintă o valoare calculată sau o acțiune efectuată de către program, afișată către lumea
exterioară. De exemplu: un led care se aprinde și se stinge, o alarmă care este setată sau un
mesaj afișat pe ecran.
Pași
Exemplu: Intrări și ieșiri pe un telefon mobil.
Un telefon mobil preia informații (input), le procesează și returnează rezultate (outputs).
Touch screen-ul este o metodă importantă de introducere a datelor, de exemplu când
scrieți un mesaj sau când apăsați pe ecran pentru a deschide o aplicație.
Ecranul de afișare reprezintă o metodă importantă de afișare a unor date, ca de
exemplu afișarea unei liste de contacte.
Decizii de tip Da/Nu
Așa cum ați văzut în capitolele anterioare, ordinea instrucțiunilor este importantă în
programare. În general, instrucțiunile sunt executate unele după celelalte, dar uneori trebuie
luate decizii cu privire la acțiunile viitoare. Algoritmul poate fi proiectat pentru a pune
3
Elemente de programare
Introducere în Python
Corneliu Agapi
întrebări utilizatorului și a aștepta un răspuns din partea acestuia pentru a decide următorul
pas.
O decizie de tip da/nu (yes/no) reprezintă o instrucțiune care alege următoarea
instrucțiune de executat. Acest lucru se realizează în funcție de răspunsul pozitiv sau negativ
introdus de utilizator.
Pași
Exemplu: Așteptarea ca un cuptor să se încălzească
Înainte de a adăuga amestecul de ingrediente în cuptor, cuptorul trebuie să fie încălzit la
temperatura potrivită. Un algoritm ar putea include o decizie da/nu pentru a determina acest
lucru. “Cuptorul este la temperatura potrivită?” Un termostat va furniza răspunsul (da sau
nu). Dacă răspunsul este da, atunci prăjitura poate fi introdusă la cuptor. Dacă răspunsul este
nu, algoritmul va mai aștepta o perioadă și va pune din nou întrebarea.
4
Elemente de programare
Introducere în Python
Corneliu Agapi
Concepte
2 tehnici care îi ajută pe programatori în descrierea algoritmilor sunt pseudocodul și
schemele logice (flowchart). Acestea sunt utilizate pentru reprezentarea secvenței de pași
din cadrul unui algoritm. Algoritmii exprimați în pseudocod sau sub forma schemelor logice
sunt rareori suficient de preciși pentru a putea fi utilizați de un computer, dar prezintă o
serie de pași suficient de în detaliu astfel încât un programator să poată înțelege modul în
care ar trebui să funcționeze algoritmul respectiv.
Pseudocod:
Un pseudocod reprezintă o modalitate informală de reprezentare a unui algoritm, utilizând
instrucțiuni scrise într-un limbaj natural, ca de exemplu engleza. Pașii din cadrul
algoritmului sunt scriși sub forma unei secvențe de instrucțiuni. Un algoritm scris ca
pseudocod este destinat mai curând să fie citit de oameni decât de un computer.
Pseudocodul arată ca un cod în care programul va fi scris, însă nu este atât de precis. Dacă
pseudocodul poate fi înțeles, atunci următorul pas este scrierea efectivă a codului din
program.
Un algoritm pentru perierea dinților, scris în pseudocod, ar putea arăta așa:
Puneți pastă pe periuță
Periați dinții din dreapta sus
Periați dinții din dreapta jos
Periați dinții din stânga sus
Periați dinții din stânga jos
STOP
Schemă logică (flowchart)
5
Elemente de programare
Introducere în Python
Corneliu Agapi
6
Elemente de programare
Introducere în Python
Corneliu Agapi
Mai jos sunt prezentate câteva forme de blocuri utilizate în cadrul unei scheme logice:
Săgețile și conectorii sunt folosiți pentru a conecta blocurile din cadrul unei scheme logice.
7
Elemente de programare
Introducere în Python
Corneliu Agapi
Săgeată
O linie direcțională desenată pentru a conecta 2 blocuri în cadrul unei scheme logice.
Această săgeată indică direcția de urmat în cadrul unui algoritm. De obicei, acestea sunt
denumite linii de flux. De exemplu, instrucțiunile din cadrul unei secvențe conțin săgeți între
ele.
Conector
Un mic cerc în cadrul unei scheme logice este utilizat pentru a conecta două linii de flux între
ele. El indică un salt de la un punct din proces la altul, ca de exemplu atunci când se răspunde
la o întrebare “Da/Nu”.
Pași
Exemplu: Schemă logică pentru 'Trucul Magic 347347'
Aceasta este schema logică pentru un truc magic cu numere. Ea ilustrează o simplă secvență
de instrucțiuni, fără blocuri de decizie. Se pornește procesul de la blocul Start și se continuă
urmând liniile de flux, executând instrucțiunile din fiecare bloc, până se ajunge la blocul Stop.
8
Elemente de programare
Introducere în Python
Corneliu Agapi
9
Elemente de programare
Introducere în Python
Corneliu Agapi
10
Elemente de programare
Introducere în Python
Corneliu Agapi
INDICII:
1. Porniți cu o secvență de acțiuni și scrieți acei pași ca pseucocod, sub forma unei liste
numerotate.
2. Luați anumiți pași și descompuneți-I în pași mai mici. De exemplu, dacă aveți un pas
numit ‘pregătește micul dejun’ – acesta poate fi divizat în pași mai mici precum “pune
pâinea în prăjitor”.
3. Reprezentați această secvență mai detaliată sub forma unei scheme logice.
4. Faceți schema logică mai interesantă prin introducerea variațiilor. De exemplu, cum
afectează vremea drumul către școală? Variațiile pot depinde de întrebări precum:
Plouă?
Întârzii la școală?
5. Adăugați blocuri de decizie pentru fiecare dintre aceste întrebări, cu diferiți pași dacă
răspunsul este da sau nu.
1.4 Pseudocod
11
Elemente de programare
Introducere în Python
Corneliu Agapi
La scrierea algoritmilor, este ușor să faceți greșeli precum omiterea anumitor pași, așezarea
pașilor într-o ordine greșită sau efectuarea de decizii incorecte. Aceste erori trebuie
corectate.
Regăsiți mai jos câteva erori și modul în care le puteți remedia.
1. Secvență incorectă de instrucțiuni
Scrierea instrucțiunilor într-o ordine greșită poartă numele de secvență incorectă.
Iată mai jos un algoritm pentru perierea dinților, scris în pseudocod. Instrucțiunile sunt într-
o ordine greșită. Algoritmul poate fi reparat prin mutarea acțiunii ‘Pune pastă pe periuță’ în
capul listei.
Perie dinții din dreapta sus
Perie dinții din dreapta jos
Perie dinții din stânga sus
Perie dinții din stânga jos
Pune pastă pe periuță
STOP
2. Rezultat incorect
Iată mai jos un algoritm pentru coacerea unei prăjituri și scoaterea ei din cuptor doar atunci
când este coaptă și nu înainte.
Încălziți cuptorul la 1800C
Amestecați ingredientele
Introduceți prăjitura în cuptor
Prăjitura este coaptă?
Așteptați
12
Elemente de programare
Introducere în Python
Corneliu Agapi
13
Elemente de programare
Introducere în Python
Corneliu Agapi
14
Elemente de programare
Introducere în Python
Corneliu Agapi
PYTHON
15
Elemente de programare
Introducere în Python
Corneliu Agapi
16
Elemente de programare
Introducere în Python
Corneliu Agapi
Dacă ați căutat bine înainte de a alege să studiați această carte, probabil ați descoperit
că Python este de departe cel mai citit și cel mai utilizat limbaj de programare la nivel înalt
în prezent. Acest lucru nu este doar pentru că pune accent pe lizibilitatea codului și sintaxa
simplă sau pentru că necesită mai puține linii de cod pentru a crea un program în comparație
cu alte limbi; în continuare vă prezentăm primele șapte motive pentru care ar trebui să
vedeți decizia dvs. de a face studii de programare Python până la sfârșit:
17
Elemente de programare
Introducere în Python
Corneliu Agapi
18
Elemente de programare
Introducere în Python
Corneliu Agapi
Instalarea Python
La momentul scrierii acestei cărți, cea mai nouă versiune de Python este Python 3.10.1. Dacă
nu sunteți sigur ce versiune să descărcați, faceți clic pe numele sistemului de operare pentru
a accesa mai multe opțiuni.
Instalare sub Windows
Instalarea este destul de simplă pe un computer cu Windows 10 sau 7. Pur și simplu
descărcați versiunea corectă de Python și deschideți asistentul de instalare când descărcarea
este finalizată. Când instalarea este completă, asigurați-vă că bifați opțiunea „Adăugați
Python3.6 la PATH” în ultimul pas al instalării.
Dacă instalarea a mers bine, puteți lansa Python din meniul Start Windows.
19
Elemente de programare
Introducere în Python
Corneliu Agapi
Comanda rapidă Python Integrated Development Environment (IDLE) este plasată aici:
Start➤Programs➤Python2➤IDLE(Python GUI).
Linux și UNIX
Pentru Linux și majoritatea sistemelor bazate pe Unix, cum ar fi Mac OSX, interpreterul de
Python vine preîncărcat cu sistemul de operare. Cu toate acestea, a ta este cel mai probabil o
versiune mai veche a Python (versiunea 2) pe care nu o vom folosi în acest ghid. Pentru a afla
versiunea Python Interpreter pe sistemul dvs., introduceți următoarea comandă pe terminal:
$ python
Această comandă ar trebui să inițieze interpretul interactiv Python, care va afișa versiunea
și alte detalii. Pentru a afla dacă Python 3 este instalat, introduceți comanda:
$ python3
Probabil veți primi o eroare „bash: python: command not found” dacă versiunea 3 a
interpretorului Python nu este instalată pe computer. Aceasta înseamnă că va trebui să îl
descărcați și să îl instalați singur, dar nu uitați să verificați opțiunea „Adăugați Python3.6 la
PATH” în ultimul pas de instalare, când instalarea este finalizată. Folosiți managerul de
pachete dacă sunteți pe un Linux bazat pe Debian.
Dacă aveți un Mac, deschideți aplicația terminal și introduceți comanda „python” pentru a o
porni. Dacă este instalată versiunea mai veche 2.x, nu o modificați, deoarece este folosită de
sistemul de operare în moduri diferite. În schimb, puteți descărca cea mai nouă versiune de
pe python.org/downloads/ sau puteți utiliza instrumentele de distribuție Fink
(http://finkproject.org) sau MacPorts (http://macports.org).
20
Elemente de programare
Introducere în Python
Corneliu Agapi
Consola Python
$ python /ExFiles/Ex1.py
Dacă sunteți un utilizator Mac sau Linux, în funcție de versiunile instalate de
Pythoninterpreter, poate fi necesar să utilizați comanda:
$ python3 /ExFiles/Ex1.py
Codul Python este introdus într-un editor de text simplu și salvat într-un fișier cu
extensia .py. Există un număr destul de mare de editoare de text populare printre
programatori pe care le puteți descărca și utiliza gratuit. Procesoarele de text precum MS
Word sau WPSWriter nu funcționează în crearea de scripturi deoarece introduc caractere
speciale în cod care interferează cu execuția acestuia. Unele dintre editoarele de text de top
pe care ar trebui să le luați în considerare sunt:
Notepad++Text
Wrangler (Mac)
Sublime Text
Vim, Atom
Amintiți-vă că, atunci când Python 3 este configurat pe computer, trebuie să vă dați
seama ce comandă utilizați pe linia de comandă pentru a apela interpretul (python pentru
windows), sau python3 pentru sistemele bazate pe Linux și UNIX cu Python 2.xinstalat).
Această carte presupune că utilizați comanda python pe linia de comandă pentru a inițializa
interpretul. Dacă nu este cazul computerului dvs., înlocuiți-l pur și simplu cu python3 pentru
a inițializa interpretul python. După ce stăpâniți acest lucru și aveți instalat un editor de text,
sunteți setat și gata să deveniți un programator în devenire.
21
Elemente de programare
Introducere în Python
Corneliu Agapi
Python are foarte multe asemănări cu alte limbaje de programare orientate pe obiecte, în
special Perl, C, C++ și Java.
După cum puteți vedea, puteți executa comenzi pe interpretul Python fără salvarea
sintaxei într-un fișier de tip script. Interpretul Python poate efectua operații aritmetice și
alte comenzi pe care le introduceți direct în terminal. Rețineți, totuși, că în acest mod, nimic
nu va fi salvat permanent.
Pentru restul acestei cărți, vom folosi modul de programare script pentru a executa
instrucțiuni de program și comenzi. Ce înseamnă asta, este că vom scrie cod într-un fișier
script (în acest caz un fișier cu extensia .py), apoi salvați-l și rulați-l din fișierul interpret.
Crearea fișierului script HelloWorld.py
Porniți editorul de text și introduceți următorul cod exact așa cum apare:
Ex1: Hello World
print ("Hello World!")
print ('I am now a Python programmer!')
22
Elemente de programare
Introducere în Python
Corneliu Agapi
Acesta este un script Python simplu cu două linii. Puteți salva acest script ca
„HelloWorld.py” în locația preferată (de preferință într-un director din directorul unde
Python este instalat sau undeva ușor accesibil, cum ar fi desktopul).
Amintiți-vă numele exact al fișierului, deoarece Python face distincție între majuscule
și minuscule și HelloWorld.py nu este același lucru cu helloworld.py. Rulați scriptul salvat
din linia de comandă (terminal), așa cum este explicat mai jos.
Când salvați un script Python, nu uitați să includeți extensia .py la sfârşitul numelui
fişierului.
Observație: Acest exercițiu presupune, de asemenea, că ați setat deja variabila PATH în dvs
computer (vezi instrucțiunile de instalare). Scriptul demonstrativ pentru acest exercițiu este
salvat ca Ex1.py.
Rularea fișierului script HelloWorld.py
Acum încercați să rulați scriptul HelloWorld.py din linia de comandă (terminal) urmând
următorii pași:
Când fișierul script Python este salvat, îl puteți rula invocând interpretul Python în locația în
care este stocat fișierul. De exemplu, dacă l-ați salvat în folderul „ExFiles” din directorul de
instalare al lui Python sau pe desktop, și invocați interpretul Python 3 folosind cuvântul cheie
python, comanda dvs. pentru a rula scriptul HelloWorld.py pe terminal (linia de comandă).
arată așa:
python HelloWorld.py
Ce se întâmplă când rulați scriptul salvat? Terminalul afișează textele ați introdus după
cuvântul cheie print și între paranteze și ghilimele? Contează că ați folosit ghilimele simple
('') sau duble ("") ?
23
Elemente de programare
Introducere în Python
Corneliu Agapi
Identificatori în Python
Când scrieți un program în Python, trebuie să vă obișnuiți să folosiți cuvinte rezervate
englezești cu care ești obișnuit în viața de zi cu zi, dar având uneori mici și subtile diferențe
și reguli vizibile. Când dorim să specificăm o variabilă, o clasă, un modul, a funcție sau alt
obiect (pe care le vom afla mai târziu), trebuie să îi atribuim un nume de identificare sau pur
și simplu un identificator.
Identificatorii din Python trebuie să înceapă cu o literă alfabetică (A-Z, a-z) sau o liniuță de
subliniere (_), urmată de alte litere și cifre (0-9) sau liniuțe de subliniere. Nu se poate folosi
semne de punctuație și alte simboluri, de ex. @, #, $, % și altele în cadrul identificatorului.
De asemenea, Python este sensibil la majuscule, litere mari și litere mici. De exemplu, Hello
nu este același lucru cu hello. Următoarele convenții sunt foarte importante și recunoscute
și totodată folosite pentru a numi identificatorii în Python, de care ar trebui să ținem cont:
un nume de Clasă trebuie să înceapă cu o literă mare; toți ceilalți identificatori pot
începe cu o literă mică.
un identificator care începe cu un singur caracter de subliniere indică că
identificatorul este privat de ex. _private.
un identificator care începe cu două caractere de subliniere este un identificator
privat puternic.
dacă un identificator se termină cu două caractere de subliniere, atunci este nume
special definit în limbaj.
Cuvinte rezervate
Python are un set de cuvinte rezervate doar interpretului pe care nu le puteți utiliza ca nume
de variabilă, constantă sau orice alt nume de identificare.
Aici este tabelul acestor cuvinte:
and as assert break class
continue def del elif else
except exec finally for from
global if Import in is
lambda not or pass print
raise while return try with
Yield
Tabelul 1: Cuvinte cheie rezervate în Python
24
Elemente de programare
Introducere în Python
Corneliu Agapi
Linii și aliniere(indentare)
În alte limbaje de programare, acoladele ({}) sau parantezele pătrate ([]) sunt utilizate
pentru a grupa blocuri de cod înrudite pentru definirea funcției sau clasei. În Python,
blocurile de cod sunt notate printr-o aliniere(indentare) de linie. Această regulă de aliniere
(indentare) este aplicată rigid și o puteți folosi un tab sau un număr de spații, atâta timp cât
există uniformitate și consecvență în utilizarea lor. Luați în considerare aceste două blocuri
de cod:
if True:
print ("True")
print ("Proceed")
else:
print ("False")
Declarațiile print („True”) și print („Proceed”) sunt indentate cu același număr de spații.
Aceasta înseamnă că formează un bloc.
Notă: Acestea sunt reguli de sintaxă foarte importante, dar nu vă chinuiți să înțelegeți totul
în acest moment. Doar asigurați-vă că știți ce este un bloc de cod și de ce blocurile sunt
importante.
Comentarii în Python
Comentariile dintr-un script Python sunt note lăsate de programator pentru mai târziu sau
pentru alți programatori ca să înțeleagă codul. Comentariile în Python au semnul # la
inceput. Orice lucru dincolo de semnul # până la sfârșitul liniei va fi ignorat de interpret.
print ("Hello World!") # Afișează “ Hello World! ” pe ecran..
# această linie este ignorată de interpreter.
print ('I am now a Python programmer.') # alt comentariu.
Un comentariu poate fi tastat pe o linie nouă sau pe aceeași linie după o expresie sau o
declarație. Nu puteți scrie un comentariu care se întinde pe mai multe rânduri pe Python.
25
Elemente de programare
Introducere în Python
Corneliu Agapi
Linii goale
O linie goală este o linie care conține doar spații albe, de obicei inserate în cod în scop estetic
și pentru a menține organizat codul. Interpretul Python ignoră complet o linie goală din
script.
Trebuie să existe o linie goală după un bloc cu mai multe linii pentru a termina afirmație.
26
Elemente de programare
Introducere în Python
Corneliu Agapi
1 tuplu
În matematică, informatică, lingvistică și filozofie, un tuplu este o listă ordonată de elemente. În teoria
mulțimilor, un n-tuplu este o secvență de elemente, unde n este un întreg nenegativ. Există un singur tuplu 0, o
secvență goală. Un -tuplu este definit inductiv folosind construcția unei perechi ordonate. Tuplurile sunt de
obicei scrise prin listarea elementelor între paranteze „” și separate prin virgule; de exemplu, denotă un 5-
tuplu. Uneori sunt utilizați și alți delimitatori, cum ar fi paranteze pătrate „” sau paranteze unghiulare „”.
Acoladele „{}” nu sunt aproape niciodată folosite pentru tupluri, deoarece sunt notația standard pentru mulțimi.
Tuplurile sunt adesea folosite pentru a descrie alte obiecte matematice, cum ar fi vectorii. În informatică,
tuplurile sunt implementate direct ca tipuri de produse în majoritatea limbajelor de programare funcționale.
Mai frecvent, acestea sunt implementate ca tipuri de înregistrări, în care componentele sunt etichetate în loc să
fie identificate numai prin poziție. Această abordare este folosită și în algebra relațională. Tuplurile sunt, de
asemenea, folosite în legătură cu programarea web-ului semantic cu Resource Description Framework sau
RDF.
27
Elemente de programare
Introducere în Python
Corneliu Agapi
Ex2
Introdu următorul cod în editorul tău și rulează-l din linia de comandă:
name = "Peter"
age = 22
score = 97.21
print (name, "is", age, "years old.")
print (name, "scored", score, "percent.")
Instrucțiunea print este pentru a afișa valorile variabilelor ca dovadă că funcționează. Ce
afișează programul dvs. când rulați scriptul?
În declarația name = „Peter”, operandul „name” din partea stângă a semnul egal este numele
variabilei, în timp ce cel din dreapta, în acest caz „Peter”, este valoarea variabilei.
Puteți vedea că valoarea numelui variabilei este cuprinsă între ghilimele în timp ce valorile
variabilelor vârsta și scorul nu sunt. Nu vă faceți griji pentru asta, vom face uitați-vă de ce în
detaliu atunci când discutați despre tipurile de date șir și numere în următorul capitolul
cărții.
Atribuirea unei singure valori mai multor variabile
Unul dintre lucrurile care fac din Python un limbaj atât de eficient și simplu este că puteți
atribui mai multor variabile o singură valoare într-o singură instrucțiune.
Ex3
x = y = z = 10
print (x)
print (y)
print (z)
Când rulați codul din Ex3, vă veți da seama când valorile variabilelor x, y și z sunt afișate pe
ecran, sunt toate la fel (10). Obiectele întregi x, y și z sunt create în aceeași locație de memorie
atunci când este atribuită lor valoarea 10. Acesta este modul în care asociați o valoare cu mai
multe variabile.
Atribuirea multiplă - mai multor variabile la mai multor valori
Exact așa cum puteți atribui mai multor variabile o valoare folosind o singură instrucțiune în
Python, puteți, de asemenea, să atribuiți mai multe obiecte la mai multe variabile cu ușurință.
Codul tău ar arăta ca Ex4:
Ex4
name, age, score = "Peter", 22, 97.21
print (age, "year old", name, "scored", score, "percent.")
În acest exercițiu, îi atribui aceleași valori pe care le-am folosit în Ex2 variabile, cu excepția
unei singure linii de cod.
28
Elemente de programare
Introducere în Python
Corneliu Agapi
Operatori de bază
Un operator este on construcție utilizată pentru a manipula valoarea unui operand.
Majoritatea operatorilor pe care îi veți întâlni în timp ce învățați Python vor arăta familiari
de la ora de matematică și majoritatea servesc aceluiași scop ca atunci când v-au fost
prezentați la școală.
În expresia 5 + 6, 5 și 6 sunt operanzii și + (plus) este operatorul.
Limbajul Python acceptă șapte tipuri de operatori:
Operatori aritmetici
Operatori de atribuire
Operatori relaționali sau de comparație
Operatori logici
Operatori de membru
Operatori de identitate
Operatori pe biți
În această carte, vom acoperi o scurtă introducere a primilor șase operatori cu scurte
exemple de scripturi care le pun în practică.
29
Elemente de programare
Introducere în Python
Corneliu Agapi
1. Operatori aritmetici
După cum sugerează numele, operatorii aritmetici sunt aceeași pe care i-ați învățat la
matematică, deși cu câteva modificări. Ei sunt:
Operator Nume Funcție
+ Adunarea Adună valorile ambilor operanzi.
- Scăderea Scade valoarea operandului drept din valoarea operandului din stânga.
* Înmulțirea Înmulțește valorile ambilor operanzi.
/ Împărțirea Împarte valoarea operandului din stânga la valoarea operandului drept.
% Mod Restul împărțirii operandului din stânga la operandul drept.
// Div Împărțirea întreagă dintre operandul stâng și cel drept
** Exp Execută calcul exponențial
Tabelul 2: Operatori aritmetici în Python
Ex5
x = 12
y=8
print ("When x = 12 and y = 8:")
z=x+y
print ("1: x + y is", z)
z=x-y
print ("2: x - y is", z)
z=x*y
print ("3: x * b is", z)
z=x/y
print ("4: x / b is ", z)
z=x%y
print ("5: x % y is ", z)
a, b = 3, 2
print ("Given a, b = 3, 2:")
c = a**b
print ("1: a**b is ", c)
c = a//b
print ("2: a//b is ", c)
30
Elemente de programare
Introducere în Python
Corneliu Agapi
2. Operatori de atribuire
Operatorii de atribuire din Python fac exact ceea ce sugerează numele: atribuie valori. Un
operator de atribuire va atribui valoarea operandului din dreapta la stânga operand.
Symbol Nume Funcție
= Egal Atribuie valoarea operandului din dreapta la operandul din stânga.
+= AddAND Adaugă valoarea operandului din dreapta la operandul din stânga.
-= Subtract AND Scade valoarea operandului dreapta din operandul din stânga.
*= Multiply AND Înmulțirea ambilor operanzi, rezultatul atribuit operandului stânga.
/= Divide AND Împarte ambii operanzi și rezultatul îl atribuie operandului stânga.
%= Modulus AND Restul împărțirii celor doi operanzi îl atribuie operandului din stânga.
**= ExponentAND Ridicăm la putere și valoarea o atribuim operandului din stânga.
//= Floor Division Împărțirea întreagă și valoarea o atribuim operandului din stânga.
Tabelul 3: Operatori de atribuire în Python
Ex6
x = 10
y=5
print ("If x = 10 and y = 5:")
z=x+y
print ("1: x + y is", z)
z += x
print ("2: += x is", z)
z *= x
print ("3: *= x is", z)
z /= x
print ("4: /= x is", z)
a=2
print ("Given a, x = 2, 10:")
a %= x
print ("5: a %= x is", a)
a **= x
print ("6: **= x is", z)
a //= x
print ("7: //= x is", a)
31
Elemente de programare
Introducere în Python
Corneliu Agapi
32
Elemente de programare
Introducere în Python
Corneliu Agapi
4. Operatori logici
Numiți și operatori booleeni, operatorii logici sunt instrucțiuni care evaluează la oricare
dintre cele două condiții booleene: Adevărat sau Fals. Cuvântul cheie NOT introdus ca
cuvânt cheie rezervat mai devreme inversează un tip boolean, de la adevărat la fals și invers.
Operator Funcție
and Returnează TRUE dacă ambii operatori sunt TRUE
or Returnează TRUE dacă oricare din operatori este TRUE
not Returnează TRUE dacă operatorul este FALSE și FALSE dacă operatorul este TRUE.
Tabelul 5: Operatori logici în Python
Ex8
x = True
y = False
print ("x and y is", x and y)
print ("x or y is", x or y)
print ("Not x is", not x)
5. Operatori de apartenență
Cei doi operatori de apartenență din Python verifică prezența operandului într-o succesiune
de valori precum șiruri de caractere (caractere alfanumerice), liste sau tupluri.
Operator Funcție
in Returnează TRUE dacă operandul este găsit într-o secvență specificată, FALSE în caz contrar
not in Returnează TRUE dacă operandul nu este în listă, FALSE în caz contrar.
Tabelul 6: Operatori de apartenență în Python
Ex9
x = "Python Programming"
y = {1:"h", 2:"m"}
print ("y" in x)
print ("o" not in x)
print (1 in y)
print ("a" in y)
33
Elemente de programare
Introducere în Python
Corneliu Agapi
6. Operatori de identitate
Un operator de identitate compară locațiile de memorie a doi operanzi. Operația se referă la
valoarea celor doi operanzi:
Operator Funcție
is Returnează TRUE dacă ambii operanzi sunt identici, FALSE în caz contrar.
is not Returnează FALSE dacă ambii operanzi sunt identici, TRUE în caz contrar.
Tabelul 7: Operatori de identitate în Python
Ex10
a = 10
a1 = 10
b = "Holla"
b1 = "holla"
c = [1,2,3]
c1 = [1,2,3]
print(a is a1)
print(b is b1)
print(c is not c1)
7. Operatori pe biți
Operatorii bit cu bit sunt utilizați la operații bit-by-bit care execută operațiuni pe operanzi
în formă binară.
Operator Nume Funcție
& AND Rezultatul este binar ce copiază bitul dacă este găsit în ambii operatori
| OR Rezultatul este binar ce copiază bitul dacă este doar într-un operator
~ NOT Binar ce face 0 dacă găsește 1 și 1 dacă regăsește 0 .
^ XOR Rezultatul este binar ce copiază bitul dacă este doar într-un operator.
Rezultatul este binar obținut prin mutarea spre stânga a biților cu un
>> Mutare dreapta
număr egal cu cel de=al doilea operand.
Rezultatul este binar obținut prin mutarea spre stânga a biților cu un
<< Mutare stânga număr egal cu cel de=al doilea operand.
Tabelul 8: Operatori pe biți în Python
0 & 0 == 0 ; 0 & 1 == 0 ; 1 & 0 == 0 ;1 & 1 == 1
Ex. 13 & 151
0000000000001101& 0000000010010111
Rezultatul este 0000000000000101 adică 5.
Ex. 13<<3
Reprezentarea lui 13 este 0000000000001101. Deplasând toți biții spre stânga cu 3 poziții
se obține: 0000000001101000, adică 104.
Să observăm că 104 este egal cu 13 * 23. În general n << k este n * 2k.
34
Elemente de programare
Introducere în Python
Corneliu Agapi
35
Elemente de programare
Introducere în Python
Corneliu Agapi
În capitolul 2, am atins ușor cele cinci tipuri de date de bază pe care le veți avea învățând să
lucrezi cu ele în cursul acestei cărți. Până la sfârșitul acestui capitol, tu va putea lucra cu cele
mai populare două tipuri de date: numere și șiruri.
Șiruri în Python
Primul tip de date pe care l-am întâlnit în primul exercițiu al acestei cărți. Este un succesiune
de caractere, inclusiv simboluri și caractere alfanumerice. În capitolul 2, ați învățat că puteți
utiliza un simplu ('), un dublu (") sau triplu (''' sau """) ghilimele pentru a indica un șir.
Dacă ai testat ceea ce ai învățat până acum, și sunt sigur că ai făcut-o ai creat
nenumărate variabile de tip șir în scripturile dvs. Cu toate acestea, până acum avem doar
explicat cum să le afișați folosind metoda print. În această secțiune, vom face o serie de alte
lucruri cu șiruri.
36
Elemente de programare
Introducere în Python
Corneliu Agapi
După cum puteți vedea în exemplul de mai sus, puteți tăia caracterele într-un șir folosind o
paranteză pătrată ([]) și chiar să specificați o serie de caractere folosind două puncte ([:]).
Ex12
name = "Peter"
print (name)
name = "Peter Pan"
print (name)
În Ex12, mai întâi atribuim numelui variabilei name șirul Peter și pentru a-l vedea îl folosim
metoda de print. Apoi reatribuim șirului Peter Pan aceeași variabilă name și aceasta este
actualizat.
Concatenarea și iterația șirurilor
Puteți uni (concatena) două sau mai multe șiruri pentru a le face unul singur folosind
operatorul plus (+) sau separarea variabilelor șir numite cu o virgulă. De exemplu, aici este
alt mod în care am fi putut actualiza variabila name în Ex12.py:
name = "Peter"
print (name)
name = name[0:4]+" Pan"
print (name)
Puteți multiplica copii ale unui șir pentru a crea șiruri noi folosind ca operator asterisc * în
Ex13.
Ex13
string1 = "Hello"
string2 = "World"
string3 = "!"
print ("string1 * 3 + string3 = ", string1 * 3 + string3)
print ("string1 + string2 = ", string1 + string2)
print ("string1, string2 = ", string1, string2)
print ("string1, string2 + string3 = ", string1, string2 + string3)
Observați cum utilizarea unui plus sau a virgulei determină dacă este pus un spațiu între cele
doua șiruri de caractere.
Secvență de escape a șirurilor
Putem lucra cu aproape orice tip de text, trebuie doar să o faceți incluzându-le între ghilimele
și apoi puteți să le împărțiți, tăiați, repetați etc. Dar ce faceți când doriți să lucrați cu un șir
care are ghilimele. De exemplu, cum ai imprima( afișa pe ecran ) un text care scrie:
„Îmi pare rău”, a spus el, „jucăriile ‘ Transformers ’ sunt epuizate.
Observați că această propoziție are atât ghilimele duble, cât și simple care creează un șir de
caractere.
37
Elemente de programare
Introducere în Python
Corneliu Agapi
Dacă puneți ghilimele pe acest șir și încercați să-l afișați, veți întâmpina o eroare de sintaxă.
Încearcă-l.
Într-un astfel de caz, putem folosi fie ghilimele triple, fie secvențe de escape pentru a evita
această problemă. O secvență de escape începe cu o bară oblică inversă (\). Se va plasa bara
oblică inversă în fața tuturor ghilimelelor duble din interiorul unui șir dacă șirul este creat
cu ghilimele duble. Veți face același lucru pentru ghilimele simple dacă șirul este creat cu
ghilimele simple.
Ex14
print ("I am sorry,\" he said, \"the ‘ Transformers ’ toys are out of stock\".")
print ('"I am sorry," he said, "the \'Transformers\' toys are out of stock".')
print (""""I am sorry, ” he said, “ the ‘ Transformers ’ toys are out of stock ” .""")
Există destul de multe alte secvențe de escape pe care le veți întâlni pe măsură ce exersați
lucrul cu șiruri de caractere. Iată o listă tabel cu cele mai populare secvențe escape pe care
le veți întâlni și ceea ce să faceți ele.
Caracter Secvență Descriere
\\ Backslash Afișează un backslash
\” Ghilimele duble Afișează o pereche ghilimele duble
\’ Ghilimele simple Afișează o singură ghilimea
\a clopot Sunete de sistem
\b backspace Mută cursorul înapoi un spațiu
\t Tab Mută cursorul înainte un Tab
\n newline Mută cursorul la începutul liniei următoare
Tabelul 10: Șir de secvențe escape
Funcții șir de Caractere
Există un număr destul de mare de funcții pe care le puteți folosi pentru a manipula șirurile
de caractere Piton. Unele dintre cele mai populare sunt incluse în tabelul de mai jos:
Funcție Descriere
upper() Returnează șirul cu caractere mari
lower() Returnează șirul cu caractere mici.
swapcase() Inversează caracterele, dacă sunt mici le face mari și invers.
capitalize() Primul caracter al șirului e mare.
title() Returnează un șir în care fiecare cuvânt începe cu un caracter mare.
strip() Returnează un șir în care sunt șterse spațiile, rândurile noi, tab-urile, sfârșitul de rând
split() Imparte toate cuvintele într-o listă
join() Concatenează toate cuvintele într-un șir.
Tabelul 11: Funcții șir de caractere
Ex15
mytext = "Happy new year World!"
print ("mytext.upper() = ", mytext.upper())
print ("mytext.lower() = ", mytext.lower())
print ("mytext.swapcase() = ", mytext.swapcase())
38
Elemente de programare
Introducere în Python
Corneliu Agapi
39
Elemente de programare
Introducere în Python
Corneliu Agapi
Numerele în Python
După șiruri, numerele sunt următoarele tipuri de valori cele mai populare în Python. Python
acceptă trei tipuri de numere: numere întregi, numere reale în virgulă mobilă și numere
complexe definite ca int, float și, respectiv complex. La fel ca șirurile, tipurile de date
numerice sunt imuabile.
Un număr întreg este un număr întreg fără virgulă zecimală în timp ce numărul real este cu
virgulă mobilă având cel puțin o zecimală. De exemplu, 2 este un număr întreg, în timp ce 2.0
este un număr real. În Python, numerele întregi pot avea orice lungime, iar numerele reale
(float) au o precizie de până la 15 zecimale.
Numerele complexe sunt sub forma x + yj unde x este partea reală a numărului iar y este
partea imaginară. Numerele complexe depășesc scopul acestei cărți deci vom acoperi doar
numere întregi și reale.
Ne ocupăm de numere zecimale (bază 10) în viața noastră de zi cu zi. Totuși, dacă ținem să
deveniți un programator competent, va trebui să știți cum să programați sisteme care
utilizează și numere în binar (bază 2), octal (bază 8) și hexazecimal (bază 16).
Această carte funcționează doar cu ceea ce suntem cu toții obișnuiți: numerele în baza 10.
Utilizarea operatorilor matematici
Cu Python, puteți efectua aproape orice calcul cu numere fără adăugarea oricărui cod
suplimentar. De exemplu, pe IDLE sau pe Terminal, puteți introduce direct operații
matematice și interpretorul va returna imediat rezultatele.
Ex17
my_math = 10 * -5
print (my_math)
print ("10 + 12 * 3 = ", 10 + 12 * 3)
print ("15 + 8 = ", 15 + 8)
print ("15 + 8.0 = ", 15 + 8.0)
print ("217 %5 = ", 217 %5)
O variabilă numerică este creată prin atribuirea unui nume unui număr folosind semnul egal
(=). În exemplul de mai sus, am creat o variabilă numită my_math cu valoarea 10*-5.
Puteți vedea în Ex17 că atunci când utilizați doi operanzi întregi, rezultatul va fi un număr
întreg și când utilizați un întreg și un operanzi flotant sau doi operanzi de tip real(float),
rezultatul va fi un real.
Constrângere numerelor
Procesul de conversie de la un tip de număr la altul se numește constrângere. Vedem deja că
operațiuni precum adunarea, scăderea, împărțirea, înmulțire, iar altele constrâng implicit un
număr întreg la unul real(float) dacă unul dintre operanzii este un real(float). De asemenea,
puteți utiliza funcțiile încorporate int(), float() și complex() pentru a fi explicit asupra unei
constrângeri între tipurile de numere și din șiruri.
Ex18
number1 = 12
40
Elemente de programare
Introducere în Python
Corneliu Agapi
number2 = 2.5
string1 = "10"
print (float(number1)) #convert number1 to float and print
print (int(number2)) #Convert number2 to integer and print
print (int(string1) * number2)
YoB = int(input("Enter your year of birth as YYYY: "))
age = 2017 - YoB
print ("You are %d years old!" %age)
În Ex18, variabila număr1 este un întreg, numărul2 este un real și șirul1 este un şir. A 5-a
linie a scriptului convertește numărul 1 în tipul float, următorul convertește numărul 2 într-
un număr întreg, iar a șaptea linie transformă șirul 1 într-un număr întreg înainte de a
înmulți cu numărul2. Rețineți că atunci când convertiți un număr real a la un număr întreg,
acesta este trunchiat la virgulă zecimală, nu trunchiat.
În același exemplu, observați că am creat variabila YoB întrebând utilizatorul la „Introduceți
anul nașterii ca AAAA: ” apoi îl convertim la un număr întreg înainte de a lucra cu el.
Funcții matematice
Există multe funcții Python încorporate care efectuează operații matematice pe numere.
Pentru a utiliza funcții matematice în modulul standard, va trebui să importați modulul de
matematică folosind import math.
Unele dintre cele mai frecvente funcții pe care ar trebui să le cunoașteți le aveți mai jos:
Funcție Descriere
fabs(x) Valoarea absolută lui x
ceil(x) Partea întreagă a lui x – întregul următor mai mare decât x
factorial(x) Calculează factorial de x , x fiind un întreg pozitiv
gcd(x,y) Calculează cmmdc al numerelor x și y
floor(x) Partea întreagă a lui x – întregul anterior mai mic decât x
round(x,n) Returnează numărul x cu n zecimale
modf(x) Returnează partea întregă și fracționară a lui x
exp(x) Returnează rezultatul lui e x
Pow(x,y) Returnează x la puterea y x**y
min(x,y) Returnează minimul dintre x și y
max(x,y) Returnează maximul dintre x și y
sqrt(x) Extrage rădăcina pătrată din x, unde x>
pi Constanta matematică pi
e Constanta matematică e
Tabelul 12: Funcții matematice
41
Elemente de programare
Introducere în Python
Corneliu Agapi
Listele și tuplurile sunt tipuri de date compuse populare care, în general, se încadrează în
categorie de secvențe alături de șiruri, secvențe de octeți, matrice de octeți și interval de
obiecte (veți afla despre acestea în stadii intermediare și avansate). Șirurile de caractere pot
arăta mult diferit de liste și tupluri, după cum veți observa, dar sunt asemănătoare prin aceea
că:
Elementele lor sunt plasate într-o secvență definită.
Elementele pot fi accesate prin intermediul indicilor.
Ele pot fi manipulate prin tăiere folosind [] .
Python, spre deosebire de alte limbaje de programare orientate pe obiecte, folosește același
lucru nume de sintaxă și funcții pentru a manipula tipuri de date secvențiale liste și tuple.
Aceste operațiuni includ indexarea, tăierea, iterația, concatenarea și verificarea calității de
membru. Vom acoperi fiecare dintre acestea mai detaliat în acest articol secțiune.
Liste în Python și tupluri
O listă în Python este un tip mutabil care este alcătuit dintr-o colecție de ordonate obiecte.
Obiectele cuprinse într-o listă nu trebuie să fie de același tip și poate include alte liste
(subliste imbricate).
Un tuplu, pe de altă parte, spre deosebire de o listă, este un tip imuabil. Aceasta înseamnă că
obiectele (articolele) dintr-un tuplu nu pot fi modificate odată create. La fel ca o listă,
obiectele dintr-un tuplu pot fi de diferite tipuri.
Crearea unei liste și a unui tuplu
O listă este creată prin plasarea tuturor obiectelor (sau elementelor) într-o paranteză pătrată
[] și separate prin virgule. Un tuplu este creat prin separarea valorilor sale cu a numai virgulă,
dar este o bună practică să le includeți între paranteze (paranteze).
Ex19
list1 = ["March", "Five", 2012, 19.25, "Heaven"]
tuple1 = ("a", "Sydney", "1900", 3.142, 0.01, "Python")
tuple2 = "x", "empire", "lego", 1, 2.0, 7
print (list1)
print (tuple1)
print (tuple2)
De asemenea, puteți crea o listă prin împărțirea elementelor unui șir așa cum am văzut în
Ex15.
Accesarea valorilor din liste și tupluri
Accesați valorile listelor și tuplurilor (separate prin virgule) în același mod am făcut
caracterele unui șir: folosind indici și tăierea cu paranteze pătrate. Luați în considerare
operațiile din Ex20:
42
Elemente de programare
Introducere în Python
Corneliu Agapi
Ex20
list1 = ["March", "Five", 2012, 19.25, "Heaven"]
tuple1 = ("a", "Sydney", "1900", 3.142, 0.01, "Python")
tuple2 = "x", "empire", "lego", 1, 2.0, 7
print (list1[0:2])
print (list1[2:])
print (tuple1[1:5])
print (tuple2[0:-1])
Puteți vedea că folosim aceleași operații de tăiere și indici pe list1, tuple1, și tuple2 așa cum
am făcut șiruri. Vă veți aminti, de asemenea, că indicii încep de la 0 dar puteți folosi indecși
negativi pentru a număra de la ultimul obiect (-1).
Actualizarea obiectelor listei
Deoarece listele din Python sunt de tip mutabil, puteți actualiza una sau mai multe elemente
folosind operatorul de atribuire (=). De asemenea, puteți adăuga articole noi pe lista folosind
metoda append() ca în Ex21.
Ex21
list1 = ["March", "Five", 2012, 19.25, "Heaven"]
print ("Old list1: ", list1)
list1[0] = "December"
list1[-1] = "Hell"
list1.append("Computer")
print ("New list1: ", list1)
Puteți vedea în exemplul de mai sus că am actualizat list1 cu articole noi la pozițiile [0]
(primul) și [-1] (ultimul) apoi au adăugat un nou articol după ultima utilizare list.apend().
Tuplurile sunt imuabile și nu pot fi actualizate. Cu toate acestea, puteți lua valorile a unui
tuplu și creați un nou tuplu adăugând elemente noi sau combinând cu un tuplu existent.
Ștergerea obiectelor din listă
Există două moduri de a șterge elemente dintr-o listă în Python. Dacă știi exact elemente de
șters, puteți folosi declarația del, dar dacă nu știți, puteți utiliza metoda remove(). Luați în
considerare aplicarea lor în Ex22 de mai jos:
Ex22
list1 = ["March", "Five", 2012, 19.25, "Heaven"]
print ("Old list1: ", list1)
del list1[3]
list1.remove("Five")
print ("New list1: ", list1)
43
Elemente de programare
Introducere în Python
Corneliu Agapi
44
Elemente de programare
Introducere în Python
Corneliu Agapi
45
Elemente de programare
Introducere în Python
Corneliu Agapi
Dicționare Python
46
Elemente de programare
Introducere în Python
Corneliu Agapi
Ex25
myDict = {"ID":12, "name":"John Daniel", "score":95, "Grade":"A"}
print ("Old myDict: ", myDict)
myDict["YOB"] = 1995
myDict["Grade"] = "B"
del myDict["ID"]
print ("New myDict: ", myDict)
În exemplu, am adăugat o nouă pereche cheie:valoare de dicționar „YOB”:1995 și a actualizat
valoarea cheii „Notă” la B. Am folosit și del pentru a șterge perechea „ID”:12. Pentru a șterge
toate intrările din dicționar, puteți folosi funcția dict.clear sau del dict to ștergeți întregul
dicționar.
Dicţionar metode
Iată un tabel cu metodele disponibile cu tipul de dicționar în Python alături de definiţiile lor.
Asigurați-vă că încercați fiecare dintre ele pentru a vedea dacă se întâmplă ceea ce este
descris.
Metodă Descriere
dict.clear() Șterge toate elementele din dicționar
dict.copy() Returnează o copie a dicționarului
dict.items() Returnează o nouă vizualizare cheie:valoare a elementelor din dicţionar.
dict.keys() Returnează o nouă vizualizare a cheilor dicționarului.
dict.pop(key[,d]) Îndepărtează elementul cu cheie și returnează valoarea sa sau d dacă key nu este găsit.
dict.popitem() Îndepărtează și returnează un element arbitrar cheie:valoare).
dict.update() Actualizează dicționarul cu perechile cheie:valoare, suprascrie cheile existente.
dict.values() Returnează o nouă vizualizare a valorilor dicționarului
Tabel 16: Metode pentru dicționare în Python
47
Elemente de programare
Introducere în Python
Corneliu Agapi
Dictionary functions
Python vine cu o serie de funcții de dicționar încorporate pe care le puteți exersați cu pentru
a obține o înțelegere mai profundă a ceea ce fac. Acestea sunt:
Metodă Descriere
all() Returnează True dacă toate cheile de dicționar sunt adevărate sau dacă dicționarul
este gol.
Returnează True dacă orice cheie a dicționarului este adevărată și False dacă
any()
dicționarul este gol.
len() Returnează lungimea dicționarului (numărul de articole).
cmp() Compară articolele din două dicționare.
sorted() Returnează o nouă listă sortată de chei în dicționar.
Returnează tipul de dicționar dacă variabila transmisă este de tip
type(var)
dicţionar.
str() Produce un șir imprimabil al articolelor din dicționar.
Tabel 17: Funcții pentru dicționare în Python
48
Elemente de programare
Introducere în Python
Corneliu Agapi
Instrucțiunea de Test - IF
Structurile de luare a deciziilor evaluează una sau mai multe expresii care pot returna
rezultatele Adevărat sau Fals folosesc apoi răspunsul pentru a determina ce acțiune să
întreprindă sau ce bloc de cod are de executat când rezultatul este adevărat sau fals.
Structura generală de luare a deciziilor găsită în majoritatea limbajelor de programare au
acest format:
Dacă testul de condiție returnează orice valoare non-zero sau non-nulă, Python o
înregistrează ca Adevărat (True). Valorile NULL și ZERO sunt considerate False(False).
Următoarele tipuri de declarațiile de luare a deciziilor sunt disponibile în Python:
1. If
2. If..else
3. If...elif..else
4. Nested... if
Instrucțiunea if
Instrucțiunea if testează o condiție, cum ar fi dacă două variabile sunt egale, atunci execută
un bloc de cod dacă rezultatul este adevărat. Sintaxa cea mai de bază a acesteia afirmația
este:
49
Elemente de programare
Introducere în Python
Corneliu Agapi
if <condition>:
statement(s)
Luați notă de cele două puncte (:) după condiția de testare și indentarea lui următoarea linie
de declarație sau declarații.
Declarația (declarațiile) în acest caz este (sunt) un bloc indentat care poate fi alcătuit din
unul sau mai multe afirmații. Indentarea este foarte importantă în Python, deoarece aceasta
este modul în care interpretul determină ce linii de cod aparțin și în ce bloc. Faceți-vă un
obicei să vă indentați liniile de cod la un nivel folosind o tab sau patru spații.
Instrucțiunea if testează expresia booleană <condition> care va fi evaluată fie Adevărat, fie
Fals. Dacă condiția este Adevărată, instrucțiunile sunt executate și dacă este Fals,
interpretul va ignora declarațiile indentate și va continua cu execuția programului la prima
linie după blocul indentat de declarație sau declarații.
Ex30
number = int(input("Enter a number to check if it is EVEN: "))
if number % 2 == 0:
print (number, "is an even number.")
Observați că în exemplul nostru, atunci când introduceți o valoare a cărui răspuns este Fals,
programul se oprește deoarece nu există instrucțiuni de executat. Condiția poate avea mai
multe condiții de evaluat folosind ca logică, operatorii ca în exemplul nostru următor:
Ex31
age = int(input("How old are you? "))
gender = str(input("Is your gender M or F? "))
if age >= 18 and gender == "M":
print ("You are an adult male.")
Condiția din acest exercițiu verifică dacă valoarea vârstei este egală sau mai mare decât 18
și valoarea genului este M, pentru a afișa instrucțiunea șir “You are an adult male”.
Instrucțiunea if..else
Instrucțiunea if are un dezavantaj: că există un singur bloc de cod pentru care se execută
când condiția de testare se evaluează la True.
Declarația if...else ia aceasta structură:
50
Elemente de programare
Introducere în Python
Corneliu Agapi
Instrucțiunea if…elif
Instrucțiunea if...elif este o construcție complexă a condiționalului if...else, elif fiind o
prescurtare pentru else if.
Cu instrucțiunea if...elif, există mai multe condiții de testat și la sfârşitul testelor există o
instrucţiune else: opţională. else:, la fel ca și cu instrucțiunea anterioară if...else, este un bloc
de cod de executat dacă toate cele condițiile anterioare sunt False.
Sintaxa pentru structura de luare a deciziilor if...elif arată astfel:
51
Elemente de programare
Introducere în Python
Corneliu Agapi
if <condition>:
statement(s)
elif:
statement(s)
Ex33
age = int(input("How old are you? "))
if age < 0:
print ("Age cannot be less than 0.")
elif age < 13:
print ("You are a child.")
elif age < 20:
print ("You are a teenager.")
elif age < 60:
print ("You are an adult.")
elif age < 120:
print ("You are a senior citizen.")
else:
print ("You have entered an invalid age.")
Rețineți că structura if...elif a luării deciziilor este echivalentă cu o serie imbricată de if...else,
cu excepția declarațiilor, și care este mai elegantă și mai ușor de lucrat.
Instrucțiuni if imbricate
Când începeți să creați programe și mai complexe în Python, este posibil să aveți nevoie să
plasați oricare dintre cele trei structuri de luare a deciziilor în interiorul unei structuri if
pentru a forma o structură mai mare de instrucțiuni if imbricate.
Pentru că imbricarea if poate forma o structură complexă, chiar confuză, tu va trebui să
acorde o mare atenție indentării pentru a diferenția nivelurile fiecărui dacă afirmație.
Sintaxa acestui tip de instrucțiune condițională ar lua a structura astfel:
52
Elemente de programare
Introducere în Python
Corneliu Agapi
if <condition1>:
statement(s)
if <condition2>:
statement(s)
elif <condition3>
statement(s)
else:
statement(s)
elif <condition4>:
statement(s)
else:
statement(s)
Ex34
x = int(input("Enter a positive number x: "))
y = int(input("Enter a positive number y: "))
if x >= 0 and y >= 0:
if x > y:
print ("x is greater than y.")
elif x==y:
print ("x and y are equal.")
else:
print ("y is greater than x.")
else:
print ("Either or both x and y are not positive integers.")
Iată un exemplu bun de declarație if imbricată simplă. Puteți identifica care dacă declarația
este în interiorul celuilalt ?
53
Elemente de programare
Introducere în Python
Corneliu Agapi
Buclele sau instrucțiunile de tip buclă sunt folosite pentru a repeta una sau mai multe
instrucțiuni de mai multe ori. Python oferă trei mecanisme pentru a executa în mod repetat
unul sau mai multe blocuri de cod fie pentru un număr definit de ori, fie continuu până la a
condiția definită este îndeplinită.
Cele trei tipuri de bucle pe care le vom acoperi în această secțiune sunt: bucla for, bulca
while și bucla imbricată.
Bucla for
Bucla for este cea mai populară structură de buclă din Python folosită pentru a itera peste o
secvență, cum ar fi o listă, șir, tuplu sau interval. Bucla for are următoarea formă generală:
for var_name in sequence:
statement
În sintaxa de mai sus, var_name este variabila care își asumă valoarea articolului în
interiorul secvenței în fiecare rundă de iterație. Bucla va continua până la se ajunge la ultimul
element din secvență.
Diagrama de mai jos simplifică modul în care funcționează bucla for:
Ex35
for x in range(0,10):
print("x = ", x)
În acest exercițiu, folosim instrucțiunea for pentru a utiliza valoarea incrementală a lui x in
intervalul de la 0 la 10.
54
Elemente de programare
Introducere în Python
Corneliu Agapi
Bucla while
Bucla while este folosită pentru a repeta peste un bloc de cod atâta timp cât este o condiție
de testare returnează Adevărat. Bucla while este folosită atunci când nu cunoașteți numărul
de ori a repeta în avans. Sintaxa buclei while are următoarea formă:
while <condition>:
statements
Cu bucla while, condiția de testare este verificată mai întâi și corpul executat numai dacă
condiția de testare se evaluează la Adevărat. Acest tip de buclă verifică testul condiție după
fiecare ciclu de iterație până când condiția de testare se evaluează la Fals.
Figura de mai jos este o diagramă de flux a buclei while:
Ex36
total = 0
x=1
xmax=eval(input("Enter the maximum integer for total: "))
while x <= xmax:
total+= x
print (total)
x+=1
print ("The total is", total)
În acest exemplu, valoarea variabilei x crește de la 1 la valoarea introdusă de numele
variabilei atribuit utilizatorului xmax. Rețineți că, deoarece comanda range este neutilizat în
această iterație, xmax este utilizat direct ca parametru în buclă.
55
Elemente de programare
Introducere în Python
Corneliu Agapi
În Ex37, folosim bucla while pentru a repeta un șir de un număr de ori precizat de utilizator.
Ex37
my_text = input("Enter a word to iterate: ")
loops = int(input("Enter times to iterate: "))
x=1
while x <= loops:
print (my_text, "X", x)
x = x+1
Așa cum punem o instrucțiune if în alta pentru a crea o structură if imbricată, De asemenea,
putem pune o buclă de tip while sau for loop în interiorul altei bucle. Regulile și structura
pentru o buclă imbricată în Python este aproape aceeași cu regulile de îmbricare.
O notă importantă despre buclele de imbricare este că puteți pune orice tip de buclă în
interior oricărui alt tip de buclă. Aceasta înseamnă că o buclă for se poate încadra într-o altă
buclă for sau buclă while și invers. Sintaxa unei bucle imbricate de bază ar arăta ca oricare
din acestea:
while <condition>:
for var in sequence:
statements
statements
56
Elemente de programare
Introducere în Python
Corneliu Agapi
while <condition>:
while <condition>:
statements
statements
Studiați Ex38, care găsește și tipărește numere prime între 2 și 100, și încercați să înțelegeți
cum este structurată o buclă imbricată.
Ex38
x=2
while (x < 100):
y=2
while (y <= (x/y)):
if not(x%y):
break
y=y+1
if (y > x/y):
print (x, " is a prime number.")
x=x+1
print ("Maximum number 100 reached.")
Instrucțiunea break
Declarația break încheie bucla în care este conținută și transferă fluxul de execuție la
instrucțiunea imediat următoare corpului buclei. Dacă instrucțiunea break este conținută în
interiorul unei bucle imbricate, utilizarea acesteia va cauza ieșirea din bucla cea mai
interioară și încheierea ei. Sintaxa pentru instrucțiunea break este pur și simplu break.
57
Elemente de programare
Introducere în Python
Corneliu Agapi
Ex39
for letter in "Success":
print ("Current letter:", letter)
if letter == "e":
break
print ("Found letter:", letter)
În acest exemplu, interpretul iterează prin literele din cuvântul „Succes”. până găsește litera
„e”, după care întrerupe ciclul și derularea programului este transferată la ultima linie din
afara buclei.
Instrucțiunea continue
Spre deosebire de break, instrucțiunea continue nu încheie bucla și în schimb întrerupe
bucla curentă și omite instrucțiunile buclei rămase. Apoi se mișcă controlat înapoi la
începutul buclei pentru a retesta starea și a relua ciclul.
Sintaxa pentru acest control al buclei este continue.
Ex40
for letter in "Success":
if letter == "e":
continue
print ("Current letter:", letter)
Ex40 seamănă mult cu Ex39, cu excepția faptului că folosim continue în loc de break. Puteși
să explicați efectul pe care îl are această modificare asupra rezultatului scriptului?
Instrucțiunea pass
În Python, instrucțiunea pass este o instrucțiune nulă, astfel încât nimic nu se întâmplă
atunci când se execută (o stare numită NOP sau fără operație). Este folosit ca substituent
unde o instrucțiune este necesară din punct de vedere sintactic, dar nu există cod sau
comandă pentru a fi execută. Pass este folosit ca substituent pentru o funcție viitoare sau o
buclă care nu a fost implementată încă.
Rețineți, totuși, că, spre deosebire de un comentariu, este complet ignorată, declarația de
trecere nu este ignorată de interpret.
58
Elemente de programare
Introducere în Python
Corneliu Agapi
while <condition>:
statement
else:
statement
Instrucțiunea range
În exemplele pe care le-am folosit în acest capitol, îi cerem interpretului să facă bucla peste
un interval specificat de numere întregi sau de caractere. Comanda range este utilizată
pentru a repeta bucla de un număr fix de ori.
Există trei moduri de utilizare comanda range:
range(i): Aceasta generează o secvență de numere întregi care încep la 0 și se termină la i-1
(nu i), crescând cu 1 cu fiecare iterație.
range(i, j): Această comandă generează o secvență de numere întregi începând de la i și se
termină la i-j, crescând cu 1 la fiecare iterație.
range(i,j,k): Această comandă range generează o secvență de numere întregi care încep la i
și se termină la j-1, crescând cu k cu fiecare iterație.
59
Elemente de programare
Introducere în Python
Corneliu Agapi
Când creați un bloc de cod care efectuează un anumit calcul sau un acțiune, o modalitate utilă
de a te referi la ea este o funcție. În Python, veți putea apela o instanță de cod de mai multe
ori și reutilizați-l pentru a evita să scrieți similar cod din nou și din nou în unul sau mai multe
programe pe care le creați.
O funcție primește o anumită intrare, denumită parametri de intrare sau argumente, și face
ceva cu el. Poate returna sau nu un rezultat (o valoare), în funcție de pentru ce ai scris.
Consideră că funcția este o modalitate de a descompune un program complex în bucăți
modulare sau mai mici pentru o mai bună organizare și gestionare.
Funcțiile predefinite, cum ar fi sqrt() și cos() sunt exemple bune de funcțiile care vin cu
Python. De asemenea, vă puteți defini propriile funcții. Acest este ceea ce vom învăța în acest
capitol.
Definirea unui funcții în Python
O funcție este definită folosind cuvântul cheie def și atribuindu-i un nume. Sintaxa sa are
următorul format:
def function_name(arguments):
"""docstring"""
statement(s)
Cuvântul cheie def marchează începutul antetului funcției urmat de numele funcției, un
identificator unic care trebuie să respecte regulile standard de scriere identificatori în
Python. Secțiunea de argumente din paranteze este opțional conține valorile sau parametrii
ce sunt transferați funcției . Rețineți că sfârșitul funcției antetul este marcat cu două puncte
(:).
Șirul de caractere opțional (docstring) descrie ceea ce face funcția. Declarațiile care
alcătuiesc corpul funcției sunt introduse sub docstring și trebuie să fie indentat la același
nivel, de obicei un tab sau patru spații. Declarația return de la sfârșitul funcției specifică că
se iese din funcție înapoi la ultima poziție de unde a fost numită. Rețineți că returnarea poate
conține o expresie sau mai multe expresii care sunt evaluate, sau doar o valoare returnată.
Ex41
def ODDorEVEN(x):
"""This is a function to determine
whether a number is even or odd"""
if (x%2 == 0):
print (x, "is an even number.")
else:
print (x, "is an odd number.")
return
60
Elemente de programare
Introducere în Python
Corneliu Agapi
Odată ce definiți o funcție, o puteți apela din promptul Python, programul sau altă funcție
prin simpla introducere a numelui acesteia cu parametrii corespunzători. Pentru a apela
funcția ODDorEVEN am definit-o în Ex41 și am testat un număr (10) indiferent dacă este par
sau impar, puteți introduce această comandă pe shell:
Ex42
def ODDorEVEN(x):
"""This is a function to determine
whether a number is even or odd"""
if (x%2 == 0):
print (x, "is an even number.")
else:
print (x, "is an odd number.")
return
x = eval(input("Enter a number to evaluate: "))
ODDorEVEN(x)
În acest exemplu, am folosit funcția ODDorEVEN din cea precedentă, pentru a demonstra
cum să apelați o funcție cu un singur argument.
Parametrii funcției
Ați învățat în secțiunea anterioară cum vă puteți defini propria funcție și cum să o definești.
Funcția noastră ODDorEVEN din Ex41 și Ex42 preia un parametru (argument) sau valoarea
(x).
Dacă funcția este rulată fără argumentul(parametrul) pe care îl așteaptă, interpretul va
returna o eroare. Același lucru se va întâmpla dacă oferiți două argumente când funcția are
nevoie doar de unul. Prin urmare, în mod implicit, argumentele (parametrii) funcției sunt
necesare și trebuie transmise la funcție în ordinea și poziția corectă. Cu toate acestea, Python
oferă mai multe opțiuni pentru a transmite argumente ale funcțiilor inclusiv:
1.Argumente poziționale
În comparație cu alte limbaje, Python gestionează argumentele funcției într-un mod foarte
flexibil. Am văzut deja în cele două exemple anterioare că argumentelor li se atribuie valori
în formatul „parametru=valoare” folosind operator de atribuire. Cu argumente poziționale,
valorile sunt atribuite parametrii funcției în ordinea locației lor. Luați în considerare
exemplul de mai jos:
61
Elemente de programare
Introducere în Python
Corneliu Agapi
Ex43
def user_details(age, sex, location):
"""Practicing positional arguments
in Python."""
print ("User is", age, "year old", sex, "from", location)
return
user_details (21, "male", "Nairobi")
user_details ("male", "Nairobi", 21)
În ultimele două rânduri ale exemplului de mai sus, interpretul le atribuie pe cele trei
parametrii furnizați funcției user_details parametrii vârstă, sex și locația în această ordine.
Furnizarea valorilor argumentului în ordine incorectă cauzează parametrilor funcției să li se
atribuie valori incorecte ale argumentului ca în ultima linie.
În exemplul nostru de mai sus, funcția greeting necesită două argumente pentru numele
parametrilor și ora zilei. Cu toate acestea, am setat valoarea implicită pentru parametrul oră
din zi ca „dimineață”. Puteți vedea în a doua execuție a funcție care atunci când valoarea
pentru timeofday nu este furnizată, valoarea implicită a fost folosită. Din această cauză,
exemplul nostru nu întâmpină o eroare atunci când numai este furnizat argumentul necesar.
Atribuirea unei valori implicite pentru un argument de funcție este, de asemenea, cea mai
practică modalitate făcând dintr-un argument, un argument opțional.
62
Elemente de programare
Introducere în Python
Corneliu Agapi
Argumentele poziționale provoacă multă confuzie, dar puteți evita toate acestea prin
specificarea argumentelor unei funcții prin numele parametrilor corespunzătoare chiar dacă
sunt într-o ordine diferită în antetul definiției funcției. Când argumentele funcției au
parametri definiți, puteți atribui valori argumentelor fără să ne facă griji pentru pozițiile lor.
Ex. 45
def user_details(age, sex, location):
"""More about keyword arguments
in Python"""
print ("User is", age, "year old", sex, "from", location)
return
user_details (location = "New York", age = 32, sex = "female")
user_details (sex = "male", location = "Nairobi", age = 21)
Puteți vedea în exemplul de mai sus că această abordare vă permite chiar să amestecați
ordinea argumentelor. Cu toate acestea, rețineți că, dacă funcția dvs. are ambele argumente
poziționale și o cheie, va trebui să aranjați mai întâi argumentele în ordinea lor.
63
Elemente de programare
Introducere în Python
Corneliu Agapi
În această demonstrație, prin plasarea unui asterisc (*) înainte de parametrul comentarii, l-
am activat să accepte orice argument suplimentar transmis către funcţie. Până la ultima linie
a scriptului apelează funcția și furnizează patru argumente când în antetul funcției sunt
definite doar trei, dar programul rulează fără eroare. Poți afla câte argumente mai poți
adăuga?
64
Elemente de programare
Introducere în Python
Corneliu Agapi
Ați învățat multe până acum, dar toate exemplele pe care le-am folosit fie au date statice
(tipurile de date pe care le-am introdus în script pentru demonstrație) sau poate prelua
intrarea temporară a utilizatorului care se pierde când ieșim din shell. Practic programarea
presupune lucrul cu fișiere pentru a citi și stoca date permanente scripturile programului.
Acesta este ceea ce veți fi prezentat în acest capitol.
Un fișier de computer poate fi definit ca o locație de stocare numită pe o memorie volatilă
dispozitiv, cum ar fi hard disk-ul, unde datele sunt înregistrate pentru a fi accesate și/sau
modificat ulterior. Operațiunile sau gestionarea fișierelor în Python este un proces în trei
pași care include:
1. Deschideți un obiect fișier.
2. Utilizarea obiectului fișier pentru a citi și scrie date.
3. Închiderea obiectului fișier.
Înainte de a continua, avem nevoie de un fișier cu care să lucrăm în acest capitol. Utilizați un
editor de text aplicație de pe computer pentru a crea un fișier text numit days.txt cu o listă
a fișierelor zilele săptămânii într-un director pe care îl puteți accesa cu ușurință, cum ar fi
desktopul sau locația fișierelor Exemplu.
Un fișier trebuie deschis înainte de a putea fi citit sau scris în el. Python vine cu funcția
încorporată open() care returnează obiectul fișierului sau handle-ul cu care este obișnuit
citește și scrie fișierul.
Sintaxa pentru deschiderea unui fișier este:
file object = open(file_name, [access_mode], [buffering], [encoding])
file object: Folosind funcția open() se creează un obiect fișier care este folosit pentru apel
alte metode asociate.
nume_fișier: Acesta este un argument șir care conține numele fișierului dorit pentru a fi
deschis.
access_mode: Modul de acces este un parametru opțional care determină modul în care
fișierul va fi accesat sau manipulat.
Tabelul de mai jos prezintă lista valorile argumentului access_mode și ce înseamnă acestea:
65
Elemente de programare
Introducere în Python
Corneliu Agapi
Metodă Descriere
r Acesta este modul implicit. Deschide fișierul numai pentru citire și plasează indicatorul
fișierului la începutul fișierului.
Deschide fișierul în format binar pentru citire numai cu indicatorul plasat la începutul dosarului.
rb Acesta este modul implicit când fișierul este deschis in binar.
r+ Deschide fișierul pentru citire și scriere cu indicatorul plasat la începutul dosarului.
Deschide fișierul în format binar pentru citire și scriere cu indicatorul plasat la începutul
rb+
fișierului.
Deschide fișierul doar pentru scriere. Se creează un fișier nou dacă nu există deja sau îl
w suprascrie dacă există deja.
Deschide fișierul în format binar numai pentru scriere. Dacă fișierul există, este suprascris și
wb dacă nu există, se creează unul nou.
Deschide fișierul pentru citire și scriere. Dacă fișierele există, este suprascris și dacă nu, atunci
w+ se creează unul nou pentru citire și scris.
Deschide fișierul în format binar pentru citire și scriere. Dacă fișierele există, este suprascris și
wb+ dacă nu există atunci se creează unul nou pentru citit si scris.
Deschide fișierul pentru scriere la sfârșit, cu indicatorul de fișier la sfârșitul fișierului. Dacă
a fișierul nu există, se creează unul nou pentru scriere.
Deschide fișierul în binar pentru a fi scris la sfârșit, cu indicatorul de fișier la sfârşitul dosarului.
ab Dacă fișierul nu există, se creează unul nou pentru scris.
Deschide fișierul atât pentru citire, cât și pentru scriere la sfârșit. Dacă fișierul există și este
a+ deschis în modul anexare cu indicatorul plasat la sfârșitul fișier, iar dacă nu există este creat
unul nou pentru citire și scriere.
Deschide fișierul în format binar atât pentru citire, cât și pentru scriere la sfârșit. Dacă fișierul
ab+ există, este deschis în modul anexare cu indicatorul plasat la sfârşitul fişierului dacă nu este
creat unul nou pentru citire și scriere.
Tab18. Descrierea modurilor de acces open() pentru fișiere în Python
[buffering]: Dacă este setată o valoare de 1, interpretul va salva liniile în timp ce accesăm
fișierul. Dacă valoarea este mai mare decât 1, alocarea memoriei va depinde de dimensiunea
memoriei tampon. Când valoarea este setată la 0 sau un număr negativ, acțiunea implicită
este că buffering nu va rula.
[codificare]: această opțiune este inclusă în această listă, dar se aplică numai fișierelor text.
Sistemele de operare diferite folosesc standarde de codare diferite pentru fișierele text.
Pentru Linux folosește „utf-8” în timp ce Windows folosește „cp1252”. Este o bună practică
de programare să specificăm tipul de codificare la manipularea fișierului text.
Să încercăm să deschidem fișierul nostru, days.txt:
Ex48
my_text = open ("/home/Computer/Python36-21/Examples/days.txt")
Nu uitați să înlocuiți calea de pe Ex48 cu calea către fișierul vostru text.
66
Elemente de programare
Introducere în Python
Corneliu Agapi
Pentru a citi conținutul unui fișier, trebuie să îl deschideți mai întâi în modul de citire și să îl
atribuiți obiectul creat la o variabilă. Python oferă trei moduri de a citi datele stocate în fișier:
67
Elemente de programare
Introducere în Python
Corneliu Agapi
Un fișier trebuie să fie deschis în modul de scriere (‘w’), adăugare (‘a’) sau de creare exclusivă
(‘x’) în care să fie scris. Este important de știut că deschiderea fișierului în scriere modul (‘w’)
va avea ca rezultat suprascrierea conținutului fișierului dacă acesta există deja.
Metoda <fișier>.write() este folosită pentru a scrie un șir într-un fișier.
Ex49
my_text = open ("/home/Computer/Python36-21/Examples/Seasons.txt")
68
Elemente de programare
Introducere în Python
Corneliu Agapi
Există un număr destul de mare de metode care vin cu obiectul fișier Python, unele despre
care am spus deja în acest capitol. Sunt multe altele cu care vă veți întâlni când exersați ceea
ce ați învățat aici și altele vă veți întâlni în stadii intermediare sau avansate de studiu în
Python.
Tabelul mai jos descrie câteva dintre cele mai comune.
Metodă Descriere
flush() Șterge memoria tampon de scriere a fluxului de fișiere.
readable() Returnează True dacă fișierul poate fi citit.
writable() Returnează True dacă în fișier poate fi scris.
seekable() Returnează True dacă fluxul de fișiere acceptă aleatoriu acces.
tell() Returnează locația curentă a fișierului.
Redimensionează fluxul de fișiere la octeții de „dimensiune” specificați. Dacă
truncate(size=None)
„dimensiunea” nu este specificată, se redimensionează la locația curentă.
Tab.19 Metode de tip file în Python
69
Elemente de programare
Introducere în Python
Corneliu Agapi
Că ai ajuns la ultimul capitol al acestei cărți este o dovadă pe care o ai a plătit prețul inițial
pentru a deveni un programator Python competent. Felicitări!
Acest manual de curs v-a ghidat prin cele mai importante subiecte pentru un începător în
programare cu Python, împreună cu 50 de exemple pe care sperăm că au făcut-o mai ușor de
înțeles ceea ce ai învățat. Sperăm că, în cazul dumneavoastră, am realizat ceea ce ne-am
propus.
Python este în prezent cel mai popular limbaj de programare și milioane de începători și
programatorii cunoscători în alte limbi își iau timp pentru învăța.
Fiind un program de uz general, Python este folosit aproape peste tot astăzi -- de la
dezvoltarea jocurilor front-end și sistemele de server web back-end la sisteme autonome
auto și electrocasnice și tot ce se află între. Având experiență de scris cod în Python, cu
siguranță capacitatea și valoarea dumneavoastră în lumea modernă va avea o altă valoare.
Procesul de învățare a elementelor de bază ale Python e posibil să fi fost descurajantă sau
frustrantă, pentru tine, dar ți-ai câștigat drepturile de laudă ale unui programator (sau
dezvoltator, oricare doriți).
Am încercat să facem această carte ușor de făcut înțeles, practic și, mai important, distractiv.
Totuși, totul în asta cartea te poate duce doar la jumătatea drumului către competență; restul
procesului învățării vă va solicita un efort în plus.
70
Elemente de programare
Introducere în Python
Corneliu Agapi
Pentru viitor
Acum că ați ajuns la sfârșitul cărții, ce urmează? Nu vom abandona. Iată câteva indicații pe
care le veți găsi extrem de benefice.
Tutoriale online
Tot ce ai învățat până acum este explicat în cel puțin un alt tutorial pe internet, deși cu o
abordare sau cu exemple diferite. Cele mai multe tutoriale sunt disponibile cu capturi de
ecran sau diagrame și chiar și platforme online IDLE în direct care vă permit să testezi codul
direct din browser. Acestea includ Python-ul lui Nettuts+ de la Resursa Scratch și Tutorials
Point (http://tutorialspoint.com/python3/)
71
Elemente de programare
Introducere în Python
Corneliu Agapi
Construiește un joc
Nimic nu este la fel de satisfăcător pentru un dezvoltator în devenire precum construirea
propriului său joc. Curba de învățare pentru dezvoltarea unui joc jucabil poate fi abruptă, dar
va fi foarte plină de satisfacții în acest proces. Puteți începe să utilizați PyGame
(http://www.pygame.org/news) bibliotecă cu unul dintre miile de tutoriale gratuite pentru
a dezvolta un joc simplu Python pentru a consolida ceea ce ai învățat și a-l pune în aplicare
practică.
72
Elemente de programare
Introducere în Python
Corneliu Agapi
73