Python Course
Programare in Python: Ghidul complet pentru incepatori - TeachBit.ro
Downloads:
Download Python | Python.org
Documentation for Visual Studio Code
+ extensia de python Microsoft
PAROLE
Calculator
Student – student
Sala transformers
Wi Fi Transformers
stepit_novo
Cladirea NOVO
Curs 1: 24.10.2023
Compilator
Interpretator
Bazele proramarii OOP
Structuri de date
Desugn pattern C – structurare cod
INREGISTRARI
Sudentstepitacademy, nu pe MYSTAT
TEAMS rosulorena
Files – recordings – download
70% prezenta / teme/ nota 7 la examen
MY Stat – teme si diamante
DESIGN PATTERNS – cum se potrivesc obiectele – ca un adaptor
Structuri de date – liste, grafuri, coada, stiva
Cum stocam – legaturi intre ele – modelare
Functia (apropiat de macro) – notiuni de baza
Algoritm – pasi – ce sa faca cu acele date
Procesare de date- programare
Calculatorul intelege codul binar
Compilat (traducere in 0 si 1. Nu interpreteaza (mai apare un om care stie ambele limbi – un
interpretator).
Python este un interpretator care interpreteaza in co binar.
Rust / C sunt limbaje de system – compilat/ transformat in 0 si 1 – fara middle man -interpretator (cum
este pyton)
C+ = limbaje de system, PROCESUL
Date- Python (sa lucrezi cu finalitatea)
Visual studio code este un IDE
Python download version 3.12.0
Python.org – open source
Code.visualstudio.com
Java si C sharp – closed source- cand incepi sa faci bani din codul scris in aceste programe, platesti
developerii
Unde scrii textul Python (editare) – Visual Studio Code- Microsoft
Command Prompt – interpretator (sa vorbeasca cu el)
Visual Studio – este pentru C Sharp
Visual Studio Code este pentru Python, se foloseste si pentru C
PiCharm – nu este gratit si este foarte complex
(Get Brains) – Web Storm si CLion – sunt cu plata
Visual Studio Code – Scrii in HTMP/CSS – ruleaza si in browser
C+ Compilator
Scrii in Binar – nu mai este nevoie de nimic
Vscode.dev – Visual Studio Code -ONLINE BROWSER
Linia de comanda – DOS (Ecran negru)
Command Prompt – CMP – Comenzi (DIR - ca sa vezi ce e in folder =>=>=> >>> Merge Python
Python 3 – il cauti cu py
% - restul impartirii
Variabile a+b (a=7/ b=8)
Fisier – Fisier VS Code -> Interpreteaza fisierul in PYTHON – interpreteaza linie cu linie
Nu se intoarce daca nu spui si nu ruleaza ce ai schimbat ulterior. Trebuie sa rerulezi.
STEPITADMIN
STEPITADMIN19771217
a=1
b=2
a+b enter 3
nu poti modifica linia - daca a luat comanda, nu mai reviine la ea daca o modifici – o iei de la inceput
Se excuta linear (pe rand) – sincron – nu lucreaza in paralel
asincronicitate – in alte limbaje si in module avansate de python
All commands Ctrl+shift+P
Open file Ctrl+O
Open folder Ctrl+K Ctrl+O
Open recent Ctrl+R
Version - Source Control
Debug
Extensions – Functionalitati (C/Python) – costumizare
Software testing – extensie
Lucrezi cu foldere – ca fisiere
File – Open folder – Yes (Rulam) – stanga – L1
Instalare Extensie – extensia PYTHON de la Microsoft
Apare Testing (iconita)
Intel sense (Pylance)
Ceva.py – fisierul are extensia .py – Format
In text – sa nu sublinieze cu rosu
CMD – la interpretator – Python
Arata unde sunt – cum ajungi pe desktop
CD - Desktop – te trimite la locatie
DIR – iti spune ce e in el
Important !!! – sa nu fii direct in interpretator <<<, ci in Windows
Cd desktop, locatie
Dir ce ai pe desktop
(sau ls) – pe linux/IOS
Dir – ce este in folder
Cd – vrei sa intri in folder
Gasesti folderul urmator si iI directionezi cu cd
C://Users… Path….python novo 4 (l1)
Visual sStudio Code -> iconita (Start) Click dreapta – Run as administrator (Poti crea folder)
Ceva.py cu bulina nu e salvat
Cu x este salvat (dreapta sus unde este selectat)
File -> Comand+S
Sua file -> Autosave bifat
Dir -3bies
3 – cate caractere sunt in acel file
File – autosave (bifare)
Py spatiu ceva.py
./ => nu mai arata eroare in CMP
Trebuie sa scrii si extensia.
Py spatiu ceva.py
Butonul de Run and Debug (Ctrl+Shift+D) arata faptul ca ai instalat extensia.
>>> vorbesti direct cu interpretatorul EXIT () – ca sa iesi sau sa iesi direct si sa redeschizi CMD
py (in CMD) – vorbesti direct cu interpretatorul
Afisare in consola CMD PRINT ()
Sageata sus Enter – preluare ultimele comezi
VS Code … terminal – New Terminal
Py cartof.py – gaseste
Sau ceva.py – gaseste
Din format POWERSHELL -> in format CMD
X ascunde
Cosul de gunoi – sterge sau inchide acel terminal
In fereastra de terminal + cu sageata jos - CMD (fereastra)
Powershell -> schimbi in CMD (selecteaza default profile)
Triunghiul RUN Buton – Dreapta sus – Ruleaza comanda
( se gaseste fereastra terminal inchisa cu x)
Date = variatia unui obiect in timp
True/False
4 tipuri de date / informatii primitive
1.Valoare – ce vrei sa ii ceri – intuieste
Numar (5->10) – cu spatou (cu rosu) – 2 numere
Virgula – nu este OK (punctul este OK)
Boolean – valori booleane
Litera mare ! False sau Mca (print)
Textile pot fi numere
“” ‘’ = TEXT
***TEXT***
Valoare – cifra, cuvant “”
Cuvant cheie (in limbaj) – gen Def
Def – Defined – Nu poti scrie acel cuvand fara “” pentru ca ia o comanda – parte din limbaj (structura)
Lucruri definite – PRINT (galben) = Functie /Variabnile/Clase/Decoratori)
Functie = reteta
Variabilele- cutie (date puse undeva cu eticheta)
Memorie permanenta / temporara
Nu folosim SPATII pentru variabile si nici caractere specilale
CamelCase – tip de scris cu capitalizez letters SpatiiMari
SnakeCase – despartite cu _ (linie jos) spatii_mari
Sunt case sensitive – trebuie scris numai intr-un case – nu poti sa incepi cu camel si sa continuni cu snake
Numar_copii=7
Print(numar _copii+5)
NU TINE CONT DE SPATII
Liniile separa comenzile
In python
In alte limbaje folosim ;
Anulare bucata cod – rulare pe bucati – nu poti
Comenzile liniare – se ancomewnteaza cu # in fata liniei
Nu va mai lua in seama ce e scris (comentarii pentru colegii care citesc codul)
(Jupiter) Notebooks – rulezi bucati de cod pentru analiza de date (ca in xls)
Faci mai multe fisiere ca sa ai codul pe bucati
Afisare **** => print (“****”)
Cursul 2 26.10.2023
latura = 5
aria = latura **2
print(f"Calculez aria...Aria unui patrat cu latura de {latura}cm este {aria}cm")
SIMPLIST:
a=5
b = a **2
print("Calculez aria...")
print("Aria unui patrat cu latura de", a, "cm este", b, "cm")
Curs 3 31.10.2023
Made.py
Operatori
Modulo
Plus minus
Imaprtite intreaga si modulo
Operatorul and intre 2 true= true
Logici si matematici
Binari
Flow contrrolers- cuvinte cheie – modul in care s eparcurge codul
Aplicatie pos
781.99
De plata nr – 45.98
Plata esuata sau plata reusita
Print plata esuata
Prinst plata reusita
Blocuri conditionale- dcaa bucata de cod e executata
Blocuri repetitive – de cate ori este repetata aceea bucata de cod
Functii clase
2 categ de operatori- variabile si bloc controolere = turing complete cand pot isa dezvolti orice cu el
S apoti s ate inorci in cod – turing complete- pot isa faci orice cu el
If- blocul conditional ce ne permite sa rezolvam prolema aceatsa
Run and Debugging- scriere incorecta
Escape daca ruleaza gresit
Sageata de rulare in dreapta- sageata de langa – run py file si debug py file – se incarca o interfata si
ruleaza aplicatia cu dezinsectie – break points – puncta in care drim s aoprim executia
Bara din stanga numerelor- cerculete rosi – cerculetul ramane aprins – click pe 2 – locul unde vrem sa
oprim executia codului – numai cand rulam in debug mod- ramane ultima rulare care ati facut -o cu
gandacel
Rularea simpla executa rapid – cea cu debuger ruleaza ai greu
Interfata de debugging – stanga fereastra – panou de control pe centrul ecranului se poate muta in
stanga
Primul buton – continua, mergi mai departe dupa punctul breack
Al doilea – step over – treci la linia urmatoare – iti permite sa execute linie cu linie
Al treilea – si al patrulea – te lasa sa intri in codul functiei
Penultimul – restart/resetare- acnd schimbi ceva in cod – reia aplicatia
Ultimul – stop
Numele de variabile nu pot contine spatii
Erorile sunt de 2 tipurei – de sintaxa – nu ruleaza apare eroarea iti spune cam ce ai putea sa schimbi
Erori de logica – codul e scris bine, dar ceva e in neregula
// - nu e eroare de sintaxa pt ca merge codul – dar da erori de calcul / logica
Debugging -pui break point – debuggerul te ajuta s arulezi pas cu aps , nu gaseste el eroarea.
Stanga valorile variabilelor
Tu observe ce e in neregula
Te ajuta s avezi I cod cu ce valori lu crezi
Stepover
Cota – urmaresti variabilele
Ruleaza linie cu linie - eroare de respectare reguli programare
Sintaxa e corecta dar da 0 din cauza //la 19/100 19% si gresesti scriind 19//100
Si erori de scriere efectiva a codului
0 division error – nu poti imparti la 0 – nu sunt bune valorile, nu sintaxa
Adunare string cu un numar- nu se pot aduna
Watch – pui expresii pe care le poti calcula – monitorizare – s epun numai in bara de debugging – in
stanga – ruleaza pana la bulna rosie – ce e in watch, se parat sunt variabilele – nu fac parte din cod, ci
din aplicatia in care lucram (vs code)
Cand dai debug – watch este o expresie care se va calcula in permanenta (dinamic) -si daca iti calculeaza
mereu tva-ul nu poti sa gresesti calculele ulterioare care folosesc mereu TVA-ul, adaugare de valori
calculate pe care le pot monitoriza
Nu se fac atribuiri- vrei sa vezi anumite lucruri – sa vede, de ex care este cel mai inalt din clasa – functia
max
Sa observ ce se intampla pe parcurs- monitorizam valorile varibilelor pas cu pas
Incepe de la inceput pana unde pui break pointul, nu rulezi bucati de cod, se opreste und epui
breakpoint-ul si o iei de la inceput apoi.
Stepover, pot sa omit anumitre linii
If for while – flow controlers – ce anume cauta ca sa ruleze
Stop – ca sa scrii din nou in cod, ramane break pointul, ca s ail scoti treb sa il apesi din nou.
IF – plata esuata si plata reusita
Blcocul opriunea – daca executa aceea linie sau nu
If nu avvem paranteze – valoare logica sau o operatie care intoarce o valoare logica (true/false)
Scris cu aliniat dam un tab – etse necesar
In late limbaje se scrie cu {}
liniile care se scriu fara aliniat – conditie adevarata
Linia aceea se va intampla oricum
Tab e dupa if
Mai pui un if sau un else ca sa ia si linia cealalta
Altfel nu iti ia if si pe adoua linie
Conteaza aliniatele
Intr-un if poti avea mai multe linii
Ca o lista : si scrierea cu aliniat
If int un if mai pui un tab
Ca sa se opreste – se opreste la prima ;linie care nu e scrisa cu aliniat
Aliniat – cu TAB
: este un soi de than
Spatial : si tab sunt obligatoriu pt toate liniile din if
Trebuie scrisa variabila cum a fost scrisa initial
Liniile goale nu le baga in seama
If – doar linia corespondenta daca este pe aceeasi conditie TRUE
If else sau else/if daca bani in connd<decat de plata print plata esuata
Else – permite sa execut ceva daca aceatsa conditie este falsa – daca asta e falsa fa asta
Else:print plata reusita
Opusul lui < este > sau egal
Else inseamna in cazula sta mai mare sua egal (cu ce este echivalenta condittia else)
Else/if
Ai grija ca ai suma aceea in cont
If bani in cont = = de plata
Print sold zero
If bani in cont > de plata
Print plata reusita
If bani in cont < de plata
print plata esuata
Merge si cu else if
Elese este pt if ul de deasupra lui, nu pt toate de deasupra lui, doar primul if de de asupra lui- if else este
la iful precedent, nu avem else fara if
If in else si if in if – pot s afie
Else verifica daca e mai mare sau mai mic
In cazurile din else ajungem doar daca nu a fost egal
Daca e = o face doar pe aceea – afiseaza la limuta si nu maia re treaba cu elseul- ruleaza 3 intrebari doar
daca nu e egal - proces de optimizare
Bucata d ecod s eintampla doar daca nu s-au intamplat celelalte bucati de cod
Else/it – prescurtat in elif= altfel daca – este in else cu o conditie
Elsul de la final imi ia toate conditiile
If if if – si doar un else – nu sunt toate necesare
Nu pot avea un else singur, sua un elif singur – la ce facem else sau elif
Le facem dair daca celel precedente nu au fost adevarare
El ifu.l intra doar daca ce e inakinte este fals sau adevarat
In orice alt caz
Ai nevoie de optimizare
Acoperi toate posibilitatile
While este ca un if
A=9
B=15
Daca a<b print a si print ceva
Etse un if
9 si ceva
Print conditia e adevarata sis e intampla celelalte 2 linii
While fucntioneaza ca un if care la final lui are o linie imaginara care spune mergi la linia 4 – executa o
comanda daca este indeplinita o conditie (cat tinep , nu este pana cand)
Ruleaza in permanenta ceva 9 si trebuie sa inchis ze to cu cosuletul
Ruleaza cu debugerul – debug python file – linia 2-merge la linia 4
Li nia 5 – conditia e adevarata
de la linia 5 e linear la linia 6
La llinia 7 e un comentariu (ii spune du te la linia 4 cu while
Si pune din nou intrebarea se duce mai departe si adunge din nou in bucla
Cat timp while executam aceste 2 linii atat timp cat a este maim mic decat b
Nu este pana cand (nu negam) pana cand nu este acelasi lucru cu cat timp (daca conditia este
adevarata)
For (etse decat un while)- o specializare
Dar folosim while
Print 1
Print 2
print 3
conditie logica (ceva ce e true sau false)
a=1 cat timp a</decat 100
a=a+1 sau a+=1 in python
a++ =a+1 in C++
print a
cand inversam – 101 – incepem cu 1- la inceput vedewm 2
simulam un for folosind un while cand adaugi 1+1
for (de la pana la, inclusiv capete)
tema – suma secventiata +1+2+3
pare (combina cu if)
primele 50 de numere pare (nu mai mici de 50)
while patratel
Cursul 4 – 02.11.2023
“*”*5 5 stelute
While
Variabila numar sau I de la index sau numar
I este un contor in c++ I este o avriabila care creste cu 1
I=i+1 cand rulezi – sa nu ruleze in continuu
Incrementez – creste
Reguli in programare- treb uie sa fie general functional
Daca schimbi o variabila, treb sa se calcxuleze correct de fiecare data cand schimbi variabila
Nu vrrem sa avem magic values – calculatorul face alcule, nu noi
Nu treb s-o gandim noi - capcana – in loc d eimpare, vrei divizibile cu 7 si 9
Variabila cout de cate ori a intrat in acel numar (divizibil cu 2 de exemplu)
Scoatre I fsi nr creste cu 2
While (primele 50 din oricate sunt (nu limiteaza nr de comenzi)
For (interval)– de la pana la
Numerele prime se impart cu 1 si cu ele insele
0123
Numar = numar+1
Trebuie vazut daca l am gasit sau nu
Verificare daca e divizibil
Liste (primii 50 elevi care au media peste 7)
While = cat timp (nu este pana cand)
Suma primelo 10-50 numere
Suma primelor 5 numere
Magic values = calculate de noi
Algoritmica – operatie inchegata transf intr o serie repetata – automatisme- spargerea mai multor psi
inchegati – in mai multe actiuni secventiale = repetabile (for si while) while repeat o linie de mai multe
ori
Ranularizarea tuturor pasilor
Suma = 0
Uneste secvential prin while
Suma = suma+1
Suma = suma + 2
Care e nr initial
<= cu cat
# pe mai mlte linii
# CTRL/ (dupa ce le selectezi pe toate pe care vrei sa le comentezi)
Print sub if e gresit daca e pus cu tab
Cu backspace e ok
While – cand nu stim de cate ori vrem sa parcurgem
For – este pentru cerintele cand stim de cate ori vrem sa parcurgem
faci ceva pt fiecsare lucru din multimea/colectie respectiva
Booleana(adev/fals) string operatori matematici int/float (jumatati)
Colectiile (cos de mere – cosul +mere= lista)- structiuri de date tip colectie
For (variabila care va foi pe rand pentru fiecare ceva din colectie)
For ceva in
E ceva iterabil = structura de date care contine mai multe chestii (colectie) – imi permite sa le pot lua pe
rand pe fiecare. Caac unei coelctii e a lua fkiecare lucru din e a ca sa faci ceva cu ele – colectie iterabila –
cosul cu mere
Colectii neiterabile – o galeata cu apa
For face ceva pt fiecare lucru de undeva (colectie)
Structure iterabile = range (clasa / functie) – ranngeulk transformat intr o lista
Detaliaza acel interval (sac cu numere in ordine) – rangeul creaza sacul/colectia
Dupa for sau while mereu pui:
Repeat de 7 ori = 0 1 2 3 4 5 6 – rangeul creaza o lista – inclusive 0
Forul permite sa parcurg ceva pt fiecare structura iterata
For Nume variabila in iterabil:
Ce facem: print etc
Iterabil: lista, range
For in java si c – functioneaza doar cu numere
Design patterns- ce este iterabil, clasa sala si luam fiecare loc sa vedem daca e ocupat
Range ul ne l,miteaza la numerele locurilor, nu cu locul in sine
2 numere scrise in range inseamna d ela pana la … capatul dintreapta nu e inclus 1-51 (51 nu e inclus)
() intotdeauna
Sau scriem 51 ca 50+1
Treb sa secificam daca vrem sa parcurgem cum – sa scriem din cat in cat numaram
Range (De la, pana la, din cat in cat numaram) FORMULA
Nu am nici un numar de la 51 la 2 – nu afiseaza nimic
Pasul negativ – 1 -2 -3 (parcurgand invers – de la 51 la 2 tre sa ii dai cu -1afiseaza pana la 3 pr ca vii de la
51- pana la 2 – ultimul va fi 3
Capatul din dreapta- nu conteaza directia d epar curgere
Pana unde
Pasul si inversare capete (pas negative sau pozitiv - a fie correct a sa te indrepti catre el) – este o eroare
logica – nu exista numere in range ul respectiv
For ul da ria numerele
Range ul face plus 1
For ul nu are nevoie sa aiba o anumita valoare
Numere de tip float nu functioneaza in range
Num pi - exista pentru nr float
Define (pt functii) sau import (pt numere)
For ii parcurgi pe toti
While - face atat timp cat gaseste, apoi pa
Podusului numerelor - inmultite - produs (formula de calcul)= 1 (nu la 0 ca nu s eimparte)
Agregare - medie, suma - sa fim atenti la valoarea initiala
Nu incepeti de la 0, daca e inclus - iti da 0 (nu s epoate inmulti/imparti cu 0)
Merge doar la suma
For are 3 segmente in alte limbaje
Acces cisco - pe mailul institutional
Acces la platforma cisco - materiale eductionale
Cisco
Teams
Office 365 - link in mail - step it
Vreau sa trec la alt numar indifferent daca nr e par sau impar, indifferent - nu il punem in if ca sa ramana
blocat in el.
4%7 incape o data si restul este 3
5%5 0
Daca negam e sau punem or(sau) - while (e problematic - cat timp nu imi este foame = este o negatiesa il
gandesti ac pana cand- gtresesti. Treb s ail gandestu ca si cat timp)
Cat timp nu se impart amandoua
S anu le negi pe toate
Not nu e ca o functie 9daca se impart amandoua cat timp nu se impart amandoua - not e pt sat timp n
nu se intampla acel lucru - e cat timp nu e divizibil)
Negat de a si b nu e negat de a si negat de b
Problema de individualitate
Neaga cu un not in fata - nu le nega individual - logica
While
Cat timp nu se imparte la 5 si la 7 - corect
E diferit de nu se imparte la 5 si nu se imparte la 7 (se neaga amandoua)
Curs 5 07.11.2023
Cati divizori diviziili cu 3 are n
Liste
Daca nu vrem sa lucram cu toti divizorii lucram cu liste - ii stocam in liste pe divizori
Doar daca nr e ar ajungem acolo - de aceea dam print sub for indifferent de cate if uri ai dupa
Cu for trecem prin toate nr posibile si apoi printeaza ce a gasit
Problema Se considera n suma si ….
3. counter while gasite <10
Fara for prt ca nu ai interval
Index cu for ne oprim in while cand gasite = 10
4.care este gramada de numere posibile mai mici ca n
For 0-n
Sau cu while si definiti 2 varianbile
Contor 1
Nr gasite 0 contot mai mic decat n si gasite <3 atunci if gasite divizibile cu 3 …
For n interval 0-n
Impartite rest 0
Elimini contotul care trece peste el
2. includem si divizorii propria inclusive 1 si 12
3. calculati - in ideea de a gasi numerele
Data typuri
Imput este inversul lui print
Ceea ce citim cu imput este u sctring - treb s apui integer c
Data type casting
Ca sa nu afiseze 7+5 ca 75 ci ca 12
A=5
B=7
Imput 7+5 - iese 75
Int si daca; pui () este functie
Terminal=consola
Liste de true si false uri - convertesti in numere 1 si 2 si faci suma acelor numere
True = 1
False = 0
Imputuri - cand le rulezi - nu le poti rula una peste cealalata - tre s adai pe cosul de gunoi ac sa le inchizi
Orice tip de date bool float str sau int
Iei textul 3 si il transformi in numar
Int 3.14 nu exista - da eroare - in int
Sau daca vreau sa convertesc salut in numar prin int
Prin int daca e nr intreg sau alte tipuri de date in numere
Floatul iti permite sa faci un true cu .0
Str de nr 3.14 +str 2 = 3.14 2 (le concvertesti in sttringuri si se vor concatena)
Generare csvuri - scrii text si se transforma in numere
Str il afiseaza ca text
Float il afiseaza pe 3.14 ca numarnu pot aduna numere cus tringuri si te folosesti de o virgula
Le faci numere ca sa poti face operatii si transformi numerele in texte ca sa le poti introduce i text
Numarul treb convertit in str si invers
Lista de texte cate pot fi alipite cu ,
Ctrl+/
Daca nu dai pe cosul de gunoi va da ca imput in noua aplicatie pe ce a fost in vechea aplicatie
Imputul intoarce deja un strig - un textnu poti aeva string de string
Ca sa pui 14 in textul are 14 ani trebuie sa il transformi in text
Ceea ce scriu la tasattura e un text - deci e un str
3 din codul asci
Este simbolul 3 - ca si text (alt alfaber -indian arabic)
3 numeric este conceptul de 3
Introdu cerea de la tastatura sau testam o aplicatie - testam logica - acolo folosim imput
De la tastatura scrii in consola, nu in interfata
In loc d evariabila = 5 scriem 5 de la tastaura prin imput
{} sunt ca niste .....
este ca un template
Stringuri formatate = template
Format este o functie
Templateul se completeaza prin functie
paramentrii unor functii se separa prin ,
f string „”
f”” ce este {} treb s afie exact numele variabilei - lipeste ambele etape - scrii textul curisv si pui
valorile ca atare - template si apoi formatezi (sari epste pasul asta - inserezi valori in text direct
formatat
formatare si imputuri
exista conceptul de nimic in programare - null in late limbaje in python s enumeste None (este o avloare)
nu e un tip de date, nu e ceva stocat inca - nu avem cu ce sa il comparam
zero are valoare - ca un sul de hartie
primul om care intra in sala e cel mai inalt - il compari cu nimic
maxim>x
nu putem sa comparam none cu x
curs 6 09.11.2023
nr la puterea 0 = 1
orice nr x 0 = 0
break - fucntionez=aza cu while si for - cu bucle
se opreste aceea bucla cand da de break = opreste prima bucla repetitiva
for while for - o opreste doar pe cea mai apropiata
nu opreste un if
poti sa -lk scrii
if se intampla doar o data
duminica 20.18
while true cat timp adevarat e adevarat = true e adevarat tot timpul
continue
la pachet cu brake
sare peste iteratia curenta
se intoarce la a pune intrebarea din while sau for se intoarce la linia de sus si pune intrebarea din nou
tot ce scrie dupa continue nu mai ruleaza, ci se intoatrce pe linia precedenta
structuri de date complexe
functii
palindrom numere prime fibornaci
functii in functii
functiile sunt cutii cu fabrici- pui ceva si calculeaza
definitia unei functii nu presupune executarea unui cood - inveti pe cineva sa fa ca clatite, dar nu el si
face
dupa functie
pui aduna (numele pe care l-ai data
definirea - declararea fdunctiei= ce inseamna sa adune
linia 4= apelarea functiei - sa faca functia = sa faca clatite
return urmat de o operatie sau o valoare = returneaza valoarea pe care am scris-o
apelul functiei in sine ia valoarea pe care am scris-o
afisare vs returnare
nu tot ce e int ro varia bila se si afiseaza
a returna nu inseamna a afisa
aduna de 9 1 si marina inseama 10 si calculeaza 10 calculeaza si returneaza o valoare
aceasta expresie va fi 8 9arata rezultatul calculului)
apelul in sine capata valoarea calculata
intorci valoare - pe ecran nu afisezi valorile (in aplicatiile reale) - imi da numele studentului (il gasesc pe
baza valorii calculate)
nu afisam in consola tot / se vede de multe ori nimic
print afiseaza
return = intoareti o valoare / ca si cand calculezi intorcandu te la aceea inie care a apelat
functia calculeaza si apoi o afiseaza
apelul functiei in sine devine aceea valoare, nu este stocata decat daca se defineste valoarea x
ea nu se afla nicaieri
in memoria calculatorului se gaseste acel calcul- functia - black box - nu stii cum face - ci ce face- care e
rezulatatul - te rog s afaci maioneza= nu e stocata, e un apel, cerrerea va insemna maioneza - nu o
stochezi, decizi aici x= cu, valoarea returnata e conceptuala (maioneza
nu o pui intr un bol (cand e stocata)
apelul= cerere
are ca rezultat (return ) functiei = este ceea ce a returnatreturneaza 10 dar nu faci nimic cu el - nu il
stochezi, nu il afiezi = potisa il stochezi separat in y
pot sa afisez rezultatul direct
functia face si print
nu poti sa pui mai multe returnuri intr un program
se pot returna si stringuri
fix expresia in sine e rezulattul cererii in sine si vien ac o valoare = return
pot sa nu am rezulat
apelul functiei nu are rezultat
orice functie are un rezulatt
dar poate sa nu iti dea nimic inapoi
fucntia daca nu returneaza ceva - rezulattul e nimic
apelul in sine capata valoarea returnata
orice expresie are o valoare - de accea null none nimic treb sa fie ca o valoare
print la print afiseaza none
print-ul este o functie
care ii spune calculatorului s aarati ceva in consola
rezultat e o afisare - capata o valoare
return este ulltimul lcru care se executa intr o fucntie
etste similar cu breakuri pt ca tot ce e dupa ele nu se mai executa nimic
este ultima linie a functiei
stack e ca o gramada de farfurii pui mai multe fucntii deasupra
executia codului e data mai departe 0- se face legatira cau acceea fucntie- intorc legatura la locul unde
erai cand m ai apelat pe mine
cand se termina functia - return - intoarce codul (retine unde a ramas)- recursivitate
buclele- e ultima line si atunci acnd este inr lo bucla
colectii = liste
calculeaza si intoarce/returneaza un nr ridictr la o anumita putere
nu pot sa las blcouri goale
gen functii for if
treb sa scriu ceva
print ceva
for ceva
functie ceva
return nu necesita paranteze - e pur si simplu o valoare
curs 7 14.11.2023
def - definim o functie
cel mai apropiat definit
treb sa avem grija cand enuim variabila aprametru si ce se printeaza sa nu fie la fel
a de la tastatura si a variabila trebuie definite cu nume diferite
trebuie sa stiu cat este a
sa nu me numim a pe amandoua
a nu exista decat in interiorul functiei
numele pe care il dai l,ui a este de exemplu numar
print nr+7 (nu a+7)
sa nu coincida ca nume
return true return false
este ca un soi de else pentru ca daca nu s ein deplineste prima varianta , se trece la alta - adica else nu isi
mai are rostul
exercitiul fizz buzz
definiti o functie care primeste un numar N si afiseaza jocul fizz buzz pana la acel numar
reguluile fizz buzz :
daca numarul curent este divizibil cu 3 se afiseaza fizz
daca numarul curent este divizibil cu 5 este buzz
daca numarul curent este divizibil cu 3 si cu 5 se afiseaza fizz buzz
incepe cineva, urmatoarea persoana ia urmatorul numar
fizz - 3
urmatorul pt care se aplica este 5
fizz 6
fizz 9
fizz 12
cele divizibile cu 3
fizz buzz 15
for fizz buzz parametrul range
backslash end e spatiu liber caracterul default
nu mai ruleaza nimic
dupa print va pun cl cracter
by efault pune rand liber
acel backslash pune o virgula -‚
backslash end inseamna by default rand liber
e la fel ca se - care separa ce pui intel ele
end este ce pui la finalul lor
backslash end e ca un soi de enter
numere prime si cifrele unui numar
numere prime - presupune ceva si vedem daca este adevarat, presupunem adevarul si incerci sa
presupui ca nu e adevaratt= reducere la absurd in matematica - cu max - presupun ca prim ul elev e cel
mai mare dar ii amsuram si pe cieilalti
ce este nr prim = divizibil cu el insusi si pe 1
inmultirea a2 nr prime - are ca divizor doar pe cele 2 nr inmultite 1 si pe el isusi - se foloseste in
securiatte
doar eu stiu care sunt cifrele componente - factorii primi- greu de calcuat - numere de 20 de cifre - nu e
o formula, poti doar sa le cauti - asa functioneaza banca
computerele quatice pot rezolva aceasta problema in cateva secunde
computerul quantic gaseste perechea d enumere 9electroni entangled) iei toate numerele de la 1 la 3
trimioane - pt un nr prim de 20 de cifre
cum scriem algoritmic in python
2 divixzori - sa ne asiguram ca sunt doar acei 2 divizori - caci toate numerele se divid cu ele si cu 1, dar
cele prime se divid doar cu 2 numere 1 si ele isele
caut divizorii lui nr, nu caut numerele prime
incepem d ela 2 caci toate sunt divixzibile cu 1 si de aia incep la 2
0 divizori intre 1-2
nu putem s aplecam de la 0 pt ca nu s epoate divide cu 0
sa gasim 0 divizori
bublesort- presupunem ca lista e nesortata
si incercam sa o sortam
la liste
numar palindrom
in oglinda
functia palindrom care priemste un numar si iti returneaza true sau false
pass e o functie goala ca sa nu dea eroare si pui ecva dupa cand te hotarasti
fucntia returneaza true szi afisam noi apoi cu print ce vrem
cifrele unui numar - ceva mode 10- %10 voi vedea cu virgula - obtin ultima cifra
gandire algoritmica