This shows you the differences between two versions of the page.
|
programare:laboratoare:python [2015/01/11 11:48] laura.vasilescu [Exerciții] |
programare:laboratoare:python [2019/10/22 12:50] (current) george.pirtoaca [Pachete utile pentru Python] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| **Responsabil:** [[laura.vasilescu@cs.pub.ro|Laura Vasilescu]] | **Responsabil:** [[laura.vasilescu@cs.pub.ro|Laura Vasilescu]] | ||
| + | |||
| + | ==== Exerciții de laborator CB/CD ==== | ||
| + | |||
| + | Vă invităm să evaluați activitatea echipei de **programare CB/CD** și să precizați punctele tari și punctele slabe și sugestiile voastre de îmbunătățire a materiei. Feedback-ul vostru este foarte important pentru noi să creștem calitatea materiei în anii următori și să îmbunătățim materiile pe care le veți face în continuare. | ||
| + | |||
| + | <note> | ||
| + | Găsiți formularul de feedback în partea dreaptă a paginii principale de programare de pe cs.curs.pub.ro într-un frame numit “FEEDBACK” ([[http://cs.curs.pub.ro/2016/course/view.php?id=17|moodle]]). Trebuie să fiți inrolați la cursul de programare, altfel veți primi o eroare de acces. | ||
| + | </note> | ||
| + | |||
| + | Pentru a putea înțelege și valorifica feedback-ul mai ușor, apreciem orice formă de feedback negativ constructivă. Nu este suficient să ne spuneți, spre exemplu, //tema 5 a fost grea//, ne dorim să știm care au fost dificultățiile și, eventual, o propunere despre cum considerați că ar fi trebuit procedat. | ||
| ==== Obiective ==== | ==== Obiective ==== | ||
| Line 9: | Line 19: | ||
| * scrie cod într-un alt limbaj de programare | * scrie cod într-un alt limbaj de programare | ||
| - | Am ales Python deoarece este un limbaj de nivel înalt ce pune accent pe expresivitatea și înțelegerea ușoară a codului. Sintaxa este foarte simplă și intuitivă, iar limbajjul este foarte răspândit în zona de scripting și de programarea de aplicații. | + | Am ales Python deoarece este un limbaj de nivel înalt ce pune accent pe expresivitatea și înțelegerea ușoară a codului. Sintaxa este foarte simplă și intuitivă, iar limbajul este foarte răspândit în zona de scripting și de programarea de aplicații. |
| ==== Prerequisites ==== | ==== Prerequisites ==== | ||
| Line 141: | Line 151: | ||
| - Scrieți un program care afișează pe ecran primele 100 de numere ale lui Fibonacci. | - Scrieți un program care afișează pe ecran primele 100 de numere ale lui Fibonacci. | ||
| + | - Pornind de la scheletul de cod de mai jos, faceți în așa fel încât mingea să se miște incremental în toate direcțiile posibile, fără a ieși din ecran. | ||
| + | |||
| + | ** extra **: | ||
| + | - modificați în așa fel încât în loc de cerc să apară o imagine | ||
| + | - desenați mai multe forme | ||
| + | - creați interacțiuni | ||
| + | - creați un joc :) | ||
| + | |||
| + | Downloadați fișierul de [[http://lauravasilescu.ro/game.py|>>> aici <<<]]. | ||
| + | <code python> | ||
| + | import pygame | ||
| + | from pygame.locals import * | ||
| + | |||
| + | w_size = 400 | ||
| + | h_size = 400 | ||
| + | screen = pygame.display.set_mode((w_size, h_size), DOUBLEBUF) | ||
| + | |||
| + | blue_color = (0, 0, 255) | ||
| + | black_color = (0, 0, 0) | ||
| + | p_x = 10 | ||
| + | p_y = 200 | ||
| + | radius = 20 | ||
| + | |||
| + | running = True | ||
| + | while running: | ||
| + | for event in pygame.event.get(): | ||
| + | increment = False | ||
| + | |||
| + | if event.type == pygame.QUIT: | ||
| + | running = False | ||
| + | if event.type == KEYDOWN: | ||
| + | if event.key == K_RIGHT: | ||
| + | increment = True | ||
| + | |||
| + | if increment: | ||
| + | p_x = p_x + 1 | ||
| + | |||
| + | position = [p_x, p_y] | ||
| + | |||
| + | screen.fill(black_color) | ||
| + | pygame.draw.circle(screen, blue_color, position, radius) | ||
| + | pygame.display.flip() | ||
| + | |||
| + | pygame.quit() | ||
| + | </code> | ||
| + | |||
| + | Mai multe exemple de folosire a **pygame** găsiți în [[http://www.pygame.org/docs/|documentația oficială]]. | ||
| + | |||
| + | ==== Pachete utile pentru Python ==== | ||
| + | Daca vreti sa va imbogatiti cunostintele (practice) de Python, va invitam sa explorati urmatoarele pachete: | ||
| + | * [[http://cs231n.github.io/python-numpy-tutorial/|NumPy]] | ||
| + | * [[https://www.scipy.org/|SciPy]] | ||
| + | * [[https://github.com/tqdm/tqdm|tqdm]] | ||
| + | * [[https://github.com/SebiSebi/friendlylog|FriendlyLog]] | ||
| + | * [[https://matplotlib.org/|Matplotlib]] | ||