Differences

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

Link to this comparison view

gp:laboratoare:01 [2025/02/05 10:01]
maria_anca.balutoiu
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 ====
 +Python este un limbaj de programare de nivel înalt, interpretat și versatil, ideal pentru o gamă largă de aplicații, oferind atât simplitate, cât și eficiență în dezvoltarea software. Unul 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 domenii, precum:
 +  * **Dezvoltare web.** Framework-uri precum Django și Flask permit crearea de aplicații web robuste și scalabile.
 +  * **Data analytics și data science.** Biblioteci precum NumPy, pandas ș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.
 +
 +Python poate fi descărcat și instalat de [[https://​www.python.org/​|aici]].
 +
 +<note important>​Odată instalat Python, pentru ușurință sugestia este să adăugați executabilul în path în variabile de mediu.</​note>​
 +
 +==== 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ă a 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.
 +
 +Pentru a crea un mediu virtual pentru proiectul curent, într-un terminal se merge în folderul proiectului și se rulează comanda:
 +
 +<​code>​
 +python3 -m venv virtual_environment_name
 +</​code>​
 +
 +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>​
 +
 +Pentru a dezactiva mediul virtual și a reveni la mediul global, se rulează comanda:
 +<​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 proiect, fă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.1738742507.txt.gz · Last modified: 2025/02/05 10:01 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