Differences

This shows you the differences between two versions of the page.

Link to this comparison view

gp:laboratoare:01 [2025/02/05 10:05]
maria_anca.balutoiu [Setup Python]
gp:laboratoare:01 [2025/02/05 12:59] (current)
maria_anca.balutoiu [Tasks]
Line 1: Line 1:
 ===== Laboratorul 01. Introducere ===== ===== Laboratorul 01. Introducere =====
 ==== Setup Python ==== ==== Setup Python ====
-<​hidden>​ +Python este un limbaj de programare de nivel înalt, interpretat și versatil, ​ideal pentru ​o gamă largă de aplicațiioferind ​atât simplitate, cât și eficiență în dezvoltarea softwareUnul dintre principalele avantaje ale Python este comunitatea sa, care contribuie la o colecție extinsă ​de biblioteci ​și framework-uri. Aceste resurse facilitează dezvoltarea rapidă a aplicațiilor ​în diverse domeniiprecum: 
-Python este un limbaj de programare de nivel înalt, interpretat și versatil, ​cunoscut ​pentru ​sintaxa sa clară și concisă, ceea ce îl face accesibil ​atât pentru începători, cât și pentru programatori experimentațiDezvoltat ​de Guido van Rossum ​și lansat ​în 1991Python a evoluat constantdevenind unul dintre cele mai populare limbaje ​de programare din lume.+  * **Dezvoltare web.** Framework-uri precum Django și Flask permit crearea de aplicații web robuste și scalabile. 
 +  * **Data analytics și data science.** Biblioteci precum NumPypandas și Matplotlib sunt esențiale pentru manipularea și vizualizarea datelor. 
 +  * **Inteligență artificială și învățare automată.** Biblioteci precum TensorFlow și scikit-learn facilitează dezvoltarea ​de modele predictive și algoritmi de învățare automată. 
 +  * **Automatizare și scripting.** Python este adesea utilizat pentru automatizarea sarcinilor repetitive.
  
-Unul dintre principalele avantaje ale Python ​este comunitatea sa vastă și activă, care contribuie la o colecție extinsă ​de biblioteci și cadre (frameworks)Aceste resurse facilitează dezvoltarea rapidă a aplicațiilor în diverse domenii, precum:+Python ​poate fi descărcat și instalat ​de [[https://​www.python.org/​|aici]].
  
-Dezvoltare web: Framework-uri precum Django ​și Flask permit crearea ​de aplicații web robuste și scalabile.+<note important>​Odată instalat Python, pentru ușurință sugestia este să adăugațexecutabilul în path în variabile ​de mediu.</​note>​
  
-Analiza datelor și știința datelor: Biblioteci precum NumPy, pandas ​și Matplotlib sunt esențiale ​pentru ​manipularea și vizualizarea datelor.+==== Mediu Virtual ==== 
 +În Python, **venv** este un modul integrat care permite crearea de medii virtuale — spații izolate în care se pot instala pachete Python fără ​afecta setările globale ale sistemului. Acest lucru este util pentru gestionarea dependențelor în proiecte diferite ​și pentru ​evitarea conflictelor între versiuni de pachete.
  
-Inteligență artificială ​și învățare automată: Biblioteci precum TensorFlow și scikit-learn facilitează dezvoltarea de modele predictive și algoritmi de învățare automată.+Pentru a crea un mediu virtual pentru proiectul curent, într-un terminal se merge în folderul proiectului ​și se rulează comanda:
  
-Automatizare și scripting: Python este adesea utilizat pentru automatizarea sarcinilor repetitive și crearea de scripturi eficiente.+<​code>​ 
 +python3 -m venv virtual_environment_name 
 +</​code>​
  
-Sintaxa sa intuitivă și structura clară a codului încurajează bunele practici de programare și îmbunătățesc lizibilitateafacilitând colaborarea între dezvoltatori. De asemenea, Python este portabil și poate rula pe majoritatea platformelor,​ inclusiv ​Windows, macOS și Linux.+Pe urmă, acest mediu virtual trebuie activat: 
 +  * Pe Unix/​macOS:​ 
 +<​code>​ 
 +source virtual_environment_name/​bin/​activate 
 +</​code>​ 
 +  * Pe Windows
 +<​code>​ 
 +virtual_environment_name\Scripts\activate 
 +</​code>​
  
-În concluzie, Python este un limbaj de programare puternic ​și flexibilideal pentru o gamă largă de aplicațiide la proiecte ​mici la sisteme ​complexeoferind atât simplitate, cât și eficiență în dezvoltarea software. +Pentru a dezactiva mediul virtual ​și a reveni la mediul globalse rulează comanda: 
-</​hidden>​+<​code>​ 
 +deactivate 
 +</​code>​ 
 + 
 +Avantajele utilizării **venv**: 
 +  * **Izolare.** Fiecare mediu virtual are propriul set de pachete, prevenind conflictele între proiecte 
 +  * **Gestionarea dependențelor.** Permite instalarea versiunilor specifice ale pachetelor necesare pentru un proiectfără a interfera cu alte proiecte 
 +  * **Portabilitate.** Facilitează replicarea mediului de dezvoltare pe alte sisteme, ​asigurând consistența între diferite medii de lucru.
 ==== Biblioteci Utile ==== ==== Biblioteci Utile ====
 +=== Pygame ===
 +Pygame este o bibliotecă open source pentru Python, concepută pentru dezvoltarea de jocuri video și aplicații multimedia.
 +
 +Ce putem face cu Pygame:
 +  * **Grafică.** Pygame permite desenarea de forme, imagini și animații, oferind suport pentru manipularea pixelilor și transformări grafice.
 +  * **Sunet.** Biblioteca include funcționalități pentru redarea și controlul sunetelor și muzicii, permițând integrarea efectelor sonore și a coloanelor sonore în aplicații.
 +  * **Evenimente și Interacțiune.** Gestionarea intrărilor de la tastatură, mouse și alte dispozitive de interacțiune este simplificată,​ facilitând crearea de interfețe interactive.
 +  * **Gestionarea Sprite-urilor.** Pygame oferă suport pentru gestionarea sprite-urilor și a coliziunilor,​ esențiale în dezvoltarea jocurilor.
 +
 +Pentru a folosit Pygame, este necesar să importăm biblioteca în proiect:
 +
 +<​code>​
 +python3 -m pip install pygame
 +</​code>​
 +
 +<​code>​
 +import pygame
 +
 +# Initialize Pygame
 +pygame.init()
 +
 +# Set window properties
 +width, height = 800, 600
 +screen = pygame.display.set_mode((width,​ height))
 +pygame.display.set_caption('​Pygame Example'​)
 +
 +# Set the drawing colors
 +white = (255, 255, 255)
 +red = (255, 0, 0)
 +
 +# Set the coordinates and the dimensions of the square
 +x, y = 100, 100  # Upper-left corner
 +length = 50     # Length of the square
 +
 +running = True
 +while running:
 +    for event in pygame.event.get():​
 +        if event.type == pygame.QUIT:​
 +            running = False
 +
 +    # Set background color
 +    screen.fill(white)
 +
 +    # Draw a square
 +    pygame.draw.rect(screen,​ red, (x, y, length, length))
 +
 +    # Update the screen
 +    pygame.display.flip()
 +</​code>​
 +
 +=== Pillow ===
 +Pillow este o bibliotecă open source pentru Python, destinată procesării și manipulării imaginilor. ​
 +
 +Ce putem face cu Pillow:
 +  * **Suport extins pentru formate de fișiere.** Pillow poate deschide, manipula și salva o varietate largă de formate de imagine, inclusiv JPEG, PNG, BMP, GIF și TIFF.
 +  * **Manipularea imaginilor.** Biblioteca permite efectuarea de operațiuni precum redimensionarea,​ decuparea, rotirea și aplicarea de filtre sau efecte asupra imaginilor.
 +  * **Acces la nivel de pixel.** Pillow oferă posibilitatea de a accesa și modifica valorile individuale ale pixelilor, facilitând manipulări detaliate ale imaginilor.
 +  * **Gestionarea transparenței și a măștilor.** Biblioteca suportă manipularea canalelor alfa și aplicarea măștilor pentru a gestiona transparența în imagini. ​
 +
 +Pentru a folosit Pillow, este necesar să importăm biblioteca în proiect:
 +
 +<​code>​
 +python3 -m pip install pillow
 +</​code>​
 +
 +<​code>​
 +from PIL import Image
 +
 +# Open image
 +image = Image.open('​image.jpg'​)
 +
 +# Resize image
 +resized_image = image.resize((800,​ 600))
 +
 +# Save the resized image
 +resized_image.save('​resized_image.jpg'​)
 +</​code>​
 ==== Tasks ==== ==== Tasks ====
 +
 +<note tip>​Pentru a genera un număr random, folosiți biblioteca **random**.</​note>​
 +
   - Generați un grid de culori alese aleator.   - Generați un grid de culori alese aleator.
   - Generați aleator o hartă 2D folosind simboluri (~ pentru apă, # pentru munți, . pentru câmpii). Folosiți probabilități pentru a asigna tipul de teren generat.   - Generați aleator o hartă 2D folosind simboluri (~ pentru apă, # pentru munți, . pentru câmpii). Folosiți probabilități pentru a asigna tipul de teren generat.
   - **Bonus 1.** Modificați primul task astfel încât gridul de culori să se regenereze la apăsarea unei taste. ​   - **Bonus 1.** Modificați primul task astfel încât gridul de culori să se regenereze la apăsarea unei taste. ​
   - **Bonus 2.** Modificați al doilea task astfel încât să salvați harta de simboluri ca o imagine PNG.   - **Bonus 2.** Modificați al doilea task astfel încât să salvați harta de simboluri ca o imagine PNG.
gp/laboratoare/01.1738742716.txt.gz · Last modified: 2025/02/05 10:05 by maria_anca.balutoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0