INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total=...

60
SPAM Dr. Elena Ovreiu Universitatea POLITEHNICA din Bucuresti www.ovreiu.com INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON

Transcript of INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total=...

Page 1: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

SPAM

Dr. Elena OvreiuUniversitatea POLITEHNICA din Bucurestiwww.ovreiu.com

INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON

Page 2: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Punctaj

• 50 puncte laborator (colocviu) • 50 puncte examen final • Promovare: min 50 puncte din laborator + examen

final: lab+examen>=50 puncte

Page 3: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

PYTHON CURS 1

Page 4: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Obiective

• Intelegerea rolurilor componentelor hardware si software intr-un sistem de calcul

• Tehnicile pe care le folosesc computer scientists• Sa intelegeti design-ul de baza al unui computer• Python si primul program in Python

Page 5: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Ce este un computer?• Un computer modern este o “masina care stocheaza

si manipuleaza informatii aflate sub controlul unui program”

• 2 elemente cheie:Ø Computerele sunt dispozitive folosite pentru

manipularea informatieiØComputerele functioneaza sub controlul unui

program modificabil

Page 6: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Ce este un program?

• Un set detaliat de instructiuni care ii spun computerului, pas cu pas, ce sa faca

• Daca modificam programul, computerul va efectuaun se diferit de actiuni sau un task diferit.

• Masina ramane aceesi, doar programul se schimba• Computerul este o masina care executa programe

Ce este un computer?

Page 7: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Ce este un computer?

• Programele (software-ul) pun hardware-ul (masinafizica) in miscare.

• Procesul de a crea acest software se numeste programare

Page 8: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Ce este Computer Science?

• Nu este studiul computerelor!!!• E. Dijkstra: “ Computerele sunt pentru computer

science cum telescoapele sunt pentru astronomie”• Ce poate fi calculat? Cum rezolvam o problema?• Design, Analiza, Experimente

Page 9: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Ce este Computer Science?

• Pentru a demonstra ca o problema are rezolvare, trebuie sa proiectam o solutie (design a solution)

• Aceasta inseamna ca trebuie sa dezvoltam, pas cu pas, un process pentru a obtine rezultatul dorit

• In computer science, acest proces se numeste algoritm.

Design

Page 10: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Algoritm=reteta; • Dezvoltarea/proiectarea algoritmilor: una dintre cele

mai importante task-uri in computer science. • Daca putem elabora un algoritm, problema este

rezolvata• Daca nu am gasit un algoritm sa rezolve problema: nu

inseamna neaparat ca problema nu poate fi rezolvata.

Ce este Computer Science?Design

Page 11: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Analiza este procesul de a examina algoritmii si problemele dpdv matematic

• Exista unele probleme care nu pot fi rezolvate cu niciun algoritm . Se numesc nerezolvabile.

• Exista unele probleme care dureaza prea mult timpsau prea ocupa multa memorie

Ce este Computer Science?Analiza

Page 12: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Unele probleme sunt prea complexe pentru analiza• Se implementeaza un sistem si se verifica eficienta

acestuia

Ce este Computer Science?Experimente

Page 13: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

ARHITECTURA DE BAZA A UNUI COMPUTER

Page 14: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Arhitectura Hardware a unui computer

• CPU (Central Processing Unit) este “creierul” computer-ului.

• CPU executa toate operatiile din computer• Exemplu: operatii aritmetice simple,

verifica daca 2 numere sunt egale, etc

Page 15: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Memoria stocheaza datele si programele• CPU poate accesa direct numai informatiile stocate

in memoria principala (RAM sau Random AccesMemory)

• memoria principala este rapida dar volatila, de ex: cand alimentarea este intrerupta, continutulmemoriei este pierdut

Arhitectura Hardware a unui computer

Page 16: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Memoria secundara ofera o stocare (mai) permaneta: magnetica (hard disk), flash (memorieUSB), optica (CD, DVD)

Arhitectura Hardware a unui computer

Page 17: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Input devices: informatiile sunt transmise computer-ului prin intermediul tastaturii, a mouse-ului, etc

• Output devices: informatia procesata este prezentata utilizatorului prin intermediul monitorului, a imprimantei.

Arhitectura Hardware a unui computer

Page 18: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Arhitectura Hardware a unui computer

• Prima instructiune extrasa din memorie• Decodarea instructiunii pentru a vedea ce reprezinta• Executarea actiunii din instructiune• Instructiunea urmatoare este extrasa, decodificata si

executataPrima data, instructiunile sunt aduse din memoriasecundara in cea principala.

Ciclul “fetch –execute”

Page 19: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Set de Instructiuni§ Este unic fiecarui CPU§ Ex. Instructiuni: • LOAD a number from RAM to CPU• ADD 2 numbers together

• STORE a number from the CPU back out to RAM• COMPARE one number with another• JUMP IF condition to another address in RAM

• JUMP to another address in RAM (it jumps no matter what)• OUT: output data to a device such a monitor• IN: input data from a device such as a keyboard

Basic Hardware Architecture

Bibliografie:But How Do It Know? J. Clark Scott

Page 20: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Limbajul de programare este ca un cod pentru a scrie instructiunile pe care un computer le urmeaza

• Programatorii se refera la programe numindu-le cod iar procesul de a scrie algoritmii intr-un limbaj de programare il numesc codare.

Limbaje de programare

Page 21: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Computer Program■ Un program: un set de instructiuni■ Alan Turing a demonstrat ca exista 6 primitive (cuvinte

cheie) cu care poti calcula orice: Left, Right, Print, Scan, Erase, Nothing

■ Limbajele moderne ofera un set mai mare de instructiuni■ Folosind aceste 6 instructiuni de baza: orice poate fi

calculate in Python, poate fi calculate si in alt limbaj de programare

Page 22: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Limbaje de programare

• Programul este o secventa de instructiuni care ii spun computer-ului ce sa faca.

• Aceste instructiuni trebuie transmise astfel incatcomputer-ul sa le inteleaga.

• Chiar daca computer-ul ar intelege limbajul uman, este ca limbajul uman sa descrie un algoritmcomplex.

Page 23: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Limbajul uman este plin de ambiguitati.• Ex. Am vazut un baiat in parc cu telescopul. • Programele sunt exprimate intr-un mod clar si

concis, cu ajutorul limbajelor de programare. • Fiecare structura intr-un limbaj de programare are o

forma clara. Aceasta este sintaxa limbajului. • Fiecare structura are un inteles clar, acesta este

semantica limbajului.

Limbaje de programare

Page 24: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Sintaxa

• “Ana mere pere” – nu e corecta dpdv al sintaxei”Ana are mere” - corecta dpdv al sintaxei

• Limbaj de programare: 2.7 3 -nu e corect dpdv al sintaxei2.7+3 -corect dpdv al sintaxei

Page 25: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Semantica

• Propozitii care au sens.Ex: Ana avem mere este corecta dpdv al sintaxei (Subiect,

predicat) dar nu are inteles• Limbaj de programare:

Ex: “hi”+7 - corect dpdv al sintaxei (operator + operator), darnu este corect semantic (nu are sens sa aduni un cuvant cu un numar)

2.7+3 - corect dpdv semnatic si al sinxatei

Page 26: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Desi in limba engleza (ca in orice alta limba), o propozitiepoate avea mai multe intelesuri, intr-un limbaj de programare are un singur inteles

Page 27: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

• Fiecare limbaj de programare are setul propriu de primitive

• Expresii: combinatii de primitiveEx. Primitive:

ØEngleza - cuvintele (the, of, with, …)Ø Limbaj de programare –numere, operatori, string

(bool, float, *, +, ++, ==)

Limbaje de programare

Page 28: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Limbaj de nivel inalt• Conceput pentru a fi inteles si folosit de oameni;

foarte asemanator limbajului natural, folosind cuvinte din engleza: Python, C, C++, Java, JavaScript, PhP

Limbaj de nivel jos• Inteles doar de hardware-ul computer-ului. • Ex. Limbaj masina sau de asamblare• Computerele pot executa doar programe care sunt

scrise limbaj de nivel jos

Limbaje de programare

Page 29: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Limbaj de nivel inalt• Usor de scris, de citit• Portabil (pot rula pe diferite tipuri de computere fara

modificari)Limbaj de nivel jos• Foarte dificil• Folosit pentru a scrie un nou sistem de operare sau in

firmware micro-procesoarelorFiecare processor are propriul limbaj masina (Intel Core 2 Duo pe Windows accepta un limbaj binar diferit fata de PowerPc pe Mac)

High-level vs. Low-level languages

Page 30: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Limbaj de nivel josSuma a 2 numere:

• Adu numarul din locatia de memorie 1250 in CPU• Adu numarul din locatia de memorie 1251 in CPU• Aduna cele 2 numere in CPU• Salveaza rezultatul in locatia de memorie 1252. ■ In realitate, aceste instructiuni sunt reprezentate in

binar (0 si 1)

Limbaje de programare

Page 31: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Limbaj de nivel inalt subtotal=25taxa=15total= subtotal +taxaLimbaj de asamblare (de nivel jos) Limbaj masinamov subtotal 25 100110010010mov taxa 15 110110110000add subtotal taxa 101110100011

High-level vs. Low-level languages

Page 32: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Limbaj de nivel inaltc=a+b

• Acest cod trebuie convertit in limbaj masina, pentru a putea fi executat.

• Compilatoarele sunt programe care convertesc un program scris in limbaj de nivel inalt in limbajulmasina al computer-ului.

Limbaje de programare

Page 33: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Compilator

• Citeste programul (Source Code) si il converteste incod masina (Object Code) inainte de a-l executa.

• Produce un executabil (Object Code) care poate fi apoirulat de nenumarate ori, fara alte conversie

Page 34: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Interpretor

• Converteste codul sursa in cod masina (Object Code)in timpul executiei.

• Un intrepretor analizeaza si executa codul sursainstructiune cu instructiune

• Programul trebuie interpretat la fiecare rulare.

Page 35: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Compilator vs. Interpretor

1. O data codul sursa compilat, acesta poate fi executatmereu, chiar fara codul sursa sau compilatorDaca este interpretat, codul sursa si interpretul suntnecesare de fiecare data cand codul e executat.

2. Programele compilate sunt mai rapide, din momentce nu este nevoie de coversia programului la rulare.

Page 36: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Compilator vs. Interpretor

3. Limbajele interpretate fac parte dintr-un mediu deprogramare mai flexibil, din moment ce pot fidezvoltate si executate interactiv.

4. Limbajele interpretate sunt portabile, ceea ceinseamna ca executabilul produs de un compilator peun Pentium nu va fi rulat pe Mac fara recompilare.Daca exista un interpret adecvat, codul interpretatpoate fi rulat fara modificari

Page 37: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python

• www.python.org• Dezvoltat in anii ’80-90

de catre Guido van Rossum• Persoanele care

folosesc Python: Pythonistas

Page 38: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

■ In 2018 - mai multe cautari pe Google decat Kim Kardashian (Sursa: The Economist)

■ Folosit de NASA, CIA, CERN, Google, Pixar, Spotify

Page 39: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python

Python 3.7.1 (default, Dec 14 2018, 13:28:58) [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on Darwin Type "help", "copyright", "credits" or "license" for more information.>>>

Page 40: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python• >>> se numeste prompt si indica faptul ca Python

este pregatit sa primeasca o noua comanda. Comenzile pe care le introducem se numescstatements -instructiuni

• >>> print("Hello, world") Hello, world>>> print(2+3)5>>> print("2+3=", 2+3)2+3= 5>>>

Page 41: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python• De obicei vrem sa executam instructiuni impreuna

pentru a rezolva o problema. Acest lucru il facem folosind o functie:

• >>> def hello():print("Hello") print(”Python is Fun")

>>>

Page 42: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python• >>> def hello():

print("Hello") print(”Python is Fun")

>>>

• Prima linie ne spune ca am definit o functie noua pe care o numim hello.

• Urmatoarele linii sunt indentate pentru a arata ca fac parte din functia hello.

Page 43: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python• >>> def hello():

print("Hello") print(”Python is Fun")

>>>

• Linia goala (dublu enter) indica terminarea functiei• In momentul acesta nimic nu se intampla. Am creat

functia dar nu i-am spus lui Python ce sa faca cu ea

Page 44: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python• >>> def hello():

print("Hello") print(”Python is Fun")

>>>

• O functie este apelata prin tiparirea numelui functiei. • >>> hello()HelloPython is Fun>>>

Page 45: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python• De ce folosim () dupa numele functiei?• Deoarece comenzile pot avea anumite parti (numite

parametri sau argumente) plasate intre ( )• >>> def hey(person):

print("Hello",person)print ("How are you?")

>>>

Page 46: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python• >>> hey(”David")Hello DavidHow are you?>>> hey("Paula")Hello PaulaHow are you?>>>

• Cand folosim parametri, putem personalize rezultatul functiei noastre.

Page 47: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python

• Cand inchidem prompt-ul, functia pe care am definit-o se sterge.

• Programele sunt de obicei compuse din functii, module sau script-uri care sunt salvate pe disk, astfel incat sa fie folosite iar si iar.

• Un fisier modul este un fisier text creat intr-un software de editare care contine definitii de functii

Page 48: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python

• Un mediu de programare (programming environment) este proiectat pentru a ajutaprogramatorii sa scrie programe si de obicei include identarea automata, evidentierea unor cuvintecheie, etc.

Page 49: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python# File: random.py# Un program simplu care ilustreaza o functie random

def main():print(”Acest program ilustreaza o functie random")x = eval(input(”Introduceti un numar intre 0 and 1:

"))for i in range(10):

x = 3.9 * x * (1 - x)print(x)

main()

Page 50: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python

• Folosim filename.py pentru a salva un program in Python

• De data aceasta, functia pe care am definit-o se numeste main.

• main() la final ii spune lui Python sa ruleze codul

Page 51: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Python>>> Acest program ilustreaza o functie random Introduceti un numar intre 0 and 1 : .50.9750.09506250.3354999222660.8694649252590.4426331091130.9621652553370.1419727793620.47508438620.9725789275370.104009713267>>>

Page 52: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Descrierea unui program in Python# File: random.py# Un program simplu care ilustreaza o functie random

• Liniile care incep cu # se numesc comentarii• Sunt dedicate cititorului uman si ignorate de Python• Python ignora textul de la # pana la sfarsitul liniei. • Pentru a comenta mai multe linii, folosim: “”” ….”””

Page 53: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Descrierea unui program in Python

def main()

• Inceputul definitiei functiei numita main()• Deoarece programul nostru are un singur modul,

putea fi scris si fara functia main.

Page 54: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Descrierea unui program in Python

print(”Acest program ilustreaza o functie random")

• Functia print afiseza pe ecran mesajul din ghilimele.

Page 55: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

Descrierea unui program in Pythonx = eval(input(”Introduceti un numarintre 0 and 1: "))

• x este un exemplu de variabila• O variabila este folosita pentru a atribui un nume

unei valori, astfel incat sa ne putem referi la acestamai tarziu.

• Mesajul dintre ghilimele este afisat si apoi cursorulastepta sa introducem un numar de la tastatura, care e salvat in x.

Page 56: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

for i in range(10):

• for este o bucla• Bucla ii spune lui Python sa repete un cod iar si iar. • In acest exemplu, codul este repetat de 10 ori.

Descrierea unui program in Python

Page 57: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

for i in range(10):x = 3.9 * x * (1 - x)print(x)

• Liniile acestea sunt corpul buclei. • Corpul buclei este ceea ce se repeta de fiecare data• Corpul buclei este identificat prin identation• Efectul buclei este acelasi ca si cand am repeta

aceste 2 linii de 10 ori.

Descrierea unui program in Python

Page 58: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

x = 3.9 * x * (1 - x)

print(x)

Aceste 2 coloane suntechivalente!!!

Descrierea unui program in Pythonx = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

x = 3.9 * x * (1 - x)

print(x)

Page 59: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

x = 3.9 * x * (1 - x)

• Acestea este o instructiune de atribuire• Partea din dreapta “=” este o expresie matematica• * este folosit pentru inmultire• O data ce valoarea din partea dreapta a expresiei este

calculate, este apoi atribuita lui x

Descrierea unui program in Python

Page 60: INTRODUCERE IN PROGRAMARE FOLOSIND PYTHON€¦ · Limbaj de nivel inalt subtotal=25 taxa=15 total= subtotal +taxa Limbaj de asamblare(de nivel jos) Limbaj masina movsubtotal 25 100110010010

main()

• Acestea linie ii spune lui Python sa execute coduldin functia main().

Descrierea unui program in Python