This shows you the differences between two versions of the page.
programare:laboratoare:python [2015/01/11 11:40] laura.vasilescu [Sintaxa Python] |
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 137: | Line 147: | ||
328350 | 328350 | ||
</code> | </code> | ||
+ | |||
+ | ==== Exerciții ==== | ||
+ | |||
+ | - 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]] |