Responsabil: Laura Vasilescu
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.
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.
În urma parcurgerii acestui laborator studentul va fi capabil să:
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.
Este necesară instalarea următoarelor pachete:
sudo apt-get install python sudo apt-get install python-pygame
Sintaxa Python este destul de intuitivă. Variabilele nu trebuie declarate în prealabil și vor avea tipul de date stabilit în mod dinamic, în funcție de asignarea făcută.
Python pune la dispoziție o consolă (similar cu Bash) în care utilizatorul poate scrie instrucțiuni sub forma unor comenzi. Consola se pornește prin lansarea comenzii python într-un terminal.
ieu@schnurr ~ $ python Python 2.7.5+ (default, Feb 27 2014, 19:37:08) [GCC 4.8.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a = 3 * 6 + 10 >>> b = 6 / 7 + a # comentariile sunt prefixate de caracterul # >>> c = a + b >>> c 56 >>> a = "ana" >>> d = b + a Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str' >>> d = str(b) + a >>> d '28ana' >>>
>>> print "Hello World" Hello World >>>
În Python nu este necesară folosirea de ';
' la sfârșitul unei linii. Fiecare linie reprezintă o instrucțiune.
Dacă în C blocurile sunt delimitate cu ajutorul acoladelor, în Python delimitarea blocurilor se face prin indentarea codului. Astfel, în Python indentarea codului devine obligatorie.
if conditie1: functie1() elif conditie2: functie2() else: functie3()
while conditie: instructiune1 instructiune2
for i in [0, 1, 2, 3]: instr
sau
for i in range(4): instr
sau (cu pas de incrementare egal cu 2)
for i in range(0, 10, 2): instr
Se pot declara folosind sintaxa:
a = [1, 2, 3]
Pot fi concatenate folosind '+
' și pot să nu aibă neapărat același tip de elemente:
>>> a = [1, 2, 3] + ['a', 'b', 'c'] >>> a [1, 2, 3, 'a', 'b', 'c']
Pot fi accesate prin index:
>>> a[0] 1 >>> a[3] 'a'
Se pot adăuga elemente la final folosind metoda 'append
':
>>> a.append("ana") >>> a [1, 2, 3, 'a', 'b', 'c', 'ana']
Similar cu Bash, utilizatorul poate scrie comenzi în interpretor sau le poate înlănțui într-un fișier sub forma unui script (fișier sursă).
Spre exemplu, salvați codul sursă de mai jos într-un fișier numit sum2.py. Programul calculează: \begin{eqnarray*}& & S_2 = \sum_{k=0}^{100} {k^2}\end{eqnarray*}
s2 = 0 for i in range(0, 100): s2 = s2 + i * i print s2
Pentru a rula programul, tastați în terminal comanda:
ieu@schnurr ~ $ python sum2.py 328350
extra :
Downloadați fișierul de >>> aici <<<.
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()
Mai multe exemple de folosire a pygame găsiți în documentația oficială.
Daca vreti sa va imbogatiti cunostintele (practice) de Python, va invitam sa explorati urmatoarele pachete: