Curs 4 - Module
11.11.2021
Pentru început...
● 📚 Zoom + Discord + Netacad
○ Curs
○ Materiale și anunțuri
● 🕐 Joi, ora 18:00 - 21:00
○ Quiz de recapitulare din cursul precedent
○ Curs + Demo
○ Laborator
● Puneți întrebări oricând
● 👀 Feedback la fiecare curs
Quiz time!
Parola: Curs4_quiz
Module
Module
● Orice fișier ce conține cod sursă Python
este un modul.
import <nume_modul>.
● Putem folosi funcțiile/clasele din acel modul cu
<nume_modul>.<nume_funcție/ nume_clasa>
import operations
print(operations.sub(11,2)) #9
Importarea unui modul(1)
● Dintr-un modul se pot importa doar anumite
funcții și/sau clase cu
from <nume_modul> import <nume_funcție/ nume_clasa>
print(sub(11,2)) # 9
print(add(11,2)) # 13
print(mul(11,2)) # eroare
Importarea unui modul(2)
● La importarea unui modul, se poate stabili și
un alias pentru numele modulului.
import operations as op
print(op.sub(11,2)) # 9
Main
● Funcția main este punctul de început în
orice limbaj de programare.
● Pentru orice program se va seta variabila
__name__ astfel:
○ __name__ = __main__ fișierul dat ca
parametru interpretorului
○ __name__ = nume modul pentru restul
modulelor
Main - exemplu
# File main.py # File not_main.py
import not_main
get_name()
not_main.get_name()
python3 main.py
# __main__
# not_main
if __name__ == ‘__main__’
Verificarea se face pentru a vedea dacă
modulul curent a fost dat ca parametru
interpretorului.
if __name__ == ‘__main__’:
print(“I am the main module”)
else:
print(“I am not the main module”)
Fișiere în Python
● În Python, lucrul cu fișiere presupune 3
pași:
■ deschidere fișier
■ operații de citire / scriere fișier
■ închidere fișier
Deschidere fișier
Un fișier se poate deschide cu funcția open.
f = open(“nume_fisier”, “mod”),
f = open(“file.txt”)
…
f.close()
Citire linii din fișier
Putem citi toate liniile din fișier cu funcția
readlines(), care va întoarce o listă cu liniile
din fișier.
f = open(“file.txt”)
lines = f.readlines()
print(lines)
f.close()
line = f.readline().strip(“\n”)
print(line) # fisier
f.close()
Scriere linii în fișier
Putem citi liniile din fișier cu funcția
writeline(), care va scrie o linie în fișier.
f = open(“file.txt”, “w”)
f.writelines(“am scris in fisier”)
f.close()
With
Putem citi mai ușor fișiere cu cuvântul cheie
with, care va închide automat fișierul la ieșirea
din blocul de cod asociat.
lines = []
print(lines)
Split
Putem împărți un șir de caractere după spațiu
folosind funcția split.
s = “acesta-este-un-text”
print(s.split(‘-’))
Exemplu:
1. Greu de menținut
2. Greu de scris
Dezavantaje one-liner
''' Dear programmer:
When I wrote this code, only god and
I knew how it worked.
Now, only god knows it!!!
total_hours_wasted_here = 254
'''
Sursa: reddit
Pauză
Modulul sys
● Modulul permite interacțiunea cu interpretorul
și preluarea argumentelor din linia de comandă.
● Lista completă este aici.
import sys
import math
x = math.sqrt(5) # 2.2360679775
y = math.trunc(x) # 2
z = math.sin(math.pi) # 1.22e-16
Modulul random
● Generator de rezultate întâmplătoare.
● Toate funcțiile se găsesc aici.
x = randrange(5)
Număr random între 4 și 10
y = randrange(4, 10)
Număr random între 3 și 6 cu pas 2
z = randrange(3, 6, 2)
Modulul random
● O alegere întâmplătoare se face cu
choice.
import random
genre = random.choice(l)
Modulul time
● Folosit la măsurarea timpului și
întârzierea execuției.
import numpy as np
Numpy array
● Echivalentul unei liste.
● Suportă operații mai avansate.
import numpy as np
v = np.zeros(10)
import numpy as np
v = np.linspace(10, 20, 4)
Optional: Contine 4 valori
Incepe la valoarea 10
Implicit 50
Valori distribuite
uniform Se oprește la valoarea 20
Numpy array
● Operațiile se aplică tuturor elementelor
array-ului.
import numpy as np
import numpy as np
x = np.linspace(0, 1)
y = x
x = [1, 2, 3]
y = [10, 30, 90]
plt.plot(x, y)
plt.show()
Titlul și denumirea axelor
import matplotlib.pyplot as plt
plt.title(“Hello, world!”)
plt.xlabel(“Hello, X!”)
plt.ylabel(“Hello, Y!”)
plt.show()
Mai multe grafice
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2 * np.pi)
y1 = np.cos(x)
y2 = np.sin(x)
plt.plot(x, y1)
plt.plot(x, y2)
plt.show()
Legenda
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.01, 2)
functie = np.log(x)
plt.show()
Stiluri de grafice
● Fiecare grafic poate avea stilul lui propriu.
● Stilurile se stabilesc prin setarea de
parametrii kwargs.
● Stilul liniei este linestyle:
○ solid ‘-’
○ dotted ‘.’
○ dashed ‘--’
○ dashdot ‘-.’
Stiluri de grafice
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10)
y = x ** 2
plt.plot(x, y, linestyle=’-.’)
plt.show()
Stiluri de grafice
● Culoarea liniei este color. Se putea folosi
numele în engleza.
● Grosimea liniei este linewidth. Se
folosește grosime în puncte.
Stiluri de grafice
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10)
y = x ** 2
plt.show()
Salvare grafic
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10)
y = x ** 2
plt.plot(x, y)
plt.savefig(“name.png”)
plt.show()
Întrebări?