This is an old revision of the document!


Introducere în Python

Responsabil: Laura Vasilescu

Obiective

În urma parcurgerii acestui laborator studentul va fi capabil să:

  • 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.

Prerequisites

Este necesară instalarea următoarelor pachete:

sudo apt-get install python
sudo apt-get install python-pygame

Sintaxa Python

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ă.

Interpretorul Python

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'
>>> 

Hello World

>>> print "Hello World"
Hello World
>>>

Instrucțiuni

Î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
if conditie1:
    functie1()
elif conditie2:
    functie2()
else:
    functie3()
while
while conditie:
    instructiune1
    instructiune2
for
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

Tipuri de date

liste/vectori

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']

Rularea unui program sursă

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

Exerciții

  1. Scrieți un program care afișează pe ecran primele 100 de numere ale lui Fibonacci.
  2. 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 :

  1. modificați în așa fel încât de cerc să apară o imagine
  2. desenați mai multe forme
  3. creați interacțiuni
  4. creați un joc :)
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
increment = False
while running:
	for event in pygame.event.get():
		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ă.

programare/laboratoare/python.1420971733.txt.gz · Last modified: 2015/01/11 12:22 by laura.vasilescu
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