1. Materiale bibliografice

1.1. În engleză

1.2. În română


2. Introducere

Ce este Python?

La ce se referă sintagma de limbaj în contextul calculatoarelor? ::

Ce înseamnă programarea?

Limbaj de programare?

Execuţia programului?

Ce este un shell?


3. Dialogarea cu Python

3.1. Pornirea shell-ului

Atât pentru Windows cât şi pentru Linux putem utiliza IDLE (An Integrated DeveLopment Environment for Python). Acesta este accesibil din meniurile ambelor sisteme de operare.

(De asemenea sub Linux putem utiliza şi shell-ul implicit al Python-ului python, sau ipython.)

Odată pornit, Python ne informează în legătură cu versiunea curentă, şi ne întâmpină cu un prompt (secvenţă de caractere ce ne indică că aplicaţia aşteaptă comenzi de la utilizator):

   1 #Python 2.6 ...
   2 >>>

3.2. "Calculatorul de buzunar"

Deşi avem în faţă o aplicaţie complexă şi puternică, putem totuşi să o utilizăm şi ca un calculator de birou.

Totuşi înainte de a continua trebuie aduse câteva observaţii:

Operaţii simple:

Operaţii cu paranteze:

Operaţii cu numere complexe:

3.3. Tipuri de numere

3.4. Operatorii aritmetici

3.5. Funcţii aritmetice

3.6. Variabile

/!\ Spre deosebire de alte limbaje de programare, în Python nu este nevoie de a declararea variabilelor, acestea fiind definite automat în momentul iniţializării.

   1 >>> pi = 3.14
   2 >>> raza = 7
   3 >>> perimetru = 2 * pi * raza
   4 >>> perimetru
   5 43.96
   6 >>> arie = pi * raza ** 2
   7 >>> arie
   8 153.86

3.7. Alte funcţii matematice

In modulul matematic se pot găsi de asemenea alte funcţii folositoare (consultaţi documentaţia pentru o listă completă).

Importul funcţiilor:

Utilizarea funcţiilor:


4. Programarea în Python

4.1. Editarea codului sursă

Pentru IDLE: File -> New Window (Control-N) sau File -> Open... (Control-O).

Pentru Linux în linia de comandă: nano <calea-fisierului>.

(Extensia fişierelor Python este .py.)

4.2. Executarea codului sursă

Pentru IDLE: Run -> Run Module (F5.

Pentru Linux în linia de comandă: python <calea-fisierului>.

4.3. Comentarii

Syntaxă generală:

5. Afişarea la consolă

Syntaxa generală:

Exemple:

6. Structuri de control

6.1. Structura decizională

/!\ De asemenea spre deosebire de alte limbaje de programare, în Python indentarea corectă (spaţiile de la începutul liniilor) este obligatorie. Este recomandată utilizarea a 4 spaţii pentru fiecare nivel, sau a unui singur tabulator (per nivel). Nu este recomandată combinarea celor două stiluri.

Sintaxa generală:

Sintaxa în lipsa clauzei else:

Sintaxa pentru condiţii multiple:

6.1.1. Exemple

Determinarea dacă un număr este par:

Simularea funcţiei abs:

6.2. Structura iterativă

Iteraţia pe un interval:

Iteraţia pe un interval cu un pas:

Iteraţia pe o listă:

6.2.1. Exemple

Suma numerelor de la 1 la 100 :

Afişarea elementelor dintr-o listă:

6.3. Structura repetitivă

Sintaxă generală:

6.3.1. Exemple

Suma numerelor de la 1 la 100 :


7. Lists

Crearea listelor:

Introducerea listelor:

Accesarea şi modificarea elementelor unei liste:

Adăugarea unui element la capătul unei liste:

Inversarea unei liste:


8. Funcţii

Sintaxă generică:

Exemplu (determinarea cifrelor unui număr):


9. Probleme

9.1. Conversii

  1. Să se scrie un program de conversie a unui unghi din radiani în grade.
  2. Să se scrie un program de conversie a unui unghi exprimat în grade din forma zecimală, în componentele: grade (întregi), minute, secunde, zecimi şi sutimi de secundă.

9.2. Structuri decizionale

  1. Un punct în plan este dat prin coordonatele sale x şi y. Să se scrie un program care determină dacă punctul este în origine, în cadranele numerotate de la 1 la 4 (în sensul invers acelor de ceasornic), sau pe graniţa dintre aceste cadrane.
  2. Se consideră o sferă precizată prin coordonatele centrului şi raza. Dându-se un punct arbitrar în spaţiu, să se determine poziţia sa relativă faţă de sferă (în interior, pe suprafaţă, sau în exterior).
  3. Să se scrie un program care determină greutatea corporală ideală a unei persoane, cunoscându-se talia persoanei respective, vârsta şi sexul acesteia. Formulele de calcul sunt:
    • $ G_m = 50 + 0.75 * (talie - 150) + 0.25 * (varsta - 20) $

    • $ G_f = G_m - 10 $

  4. Cunoscând data curentă exprimată prin trei numere întregi (an, lună, zi), calculaţi câte ore s-au scurs de la începutul anului, şi câte ore au mai rămas până la sfârşitul anului. (Se consideră că luna februarie are 28 de zile.)
  5. Cunoscând data curentă exprimată prin trei numere întregi (an, lună, zi), şi data de naştere a unei persoane exprimată la fel, să se scrie un program care calculează vârsta persoanei respective, ca număr de ani (exprimată în forma zecimală). (Se consideră că luna februarie are 28.25 de zile.)

9.3. Structuri iterative

  1. Să se scrie un program pentru determinarea celui mai mare divizor comun a două numere naturale nenule utilizând doar operaţii de scădere.
  2. Să se scrie un program pentru determinarea celui mai mare divizor comun a două numere naturale nenule folosind algoritmul lui Euclid.
  3. Să se scrie un program determină valoarea lui x la puterea n.
  4. Să se scrie un program care determină dacă un număr natural nenul este prim sau nu.
  5. Să se scrie un program care determină suma cifrelor unui număr natural dat.
  6. Să se scrie un program care determină primii n termeni ai şirului lui Fibonacci.
  7. Să se scrie un program care determină toate numerele naturale mai mici decât n şi prime cu acesta.
  8. Se consideră următorul şir de numere naturale: $ x_n = x^2 - 79 \cdot n + 1601 $. Să se determine procentajul de valori n aparţinând unui interval închis determinat de a şi b, pentru care $x_n$ este număr prim.

  9. Să se scrie un program care determină toate numerele naturale perfecte care nu depăşesc un număr natural n dat.
  10. Să se scrie un program pentru determinarea tuturor secvenţelor de numere impare succesive a căror sumă este n la puterea a 3-a. Ex: $ 1 = 1^3; 3 + 5 = 2^3; 7 + 9 + 11 = 3^3; $.

  11. Să se scrie un program care determină descompunerea în factori primi a unui număr natural nenul dat.
  12. Să se scrie un program care realizează descompunerea unui număr natural par, mai mare strict ca 2, într-o sumă de două numere prime.

9.4. Probleme economice

  1. Considerând evoluţia unui depozit bancar cu capitalizare lunară, scrieţi un program care având ca intrări suma iniţială depusă, dobânda anuală, şi numărul de luni, determină valoarea finală a depozitului.
  2. Având în vedere problema de mai sus, şi luând în considerare rata anuală a inflaţiei (constantă considerată ca intrare a programului, şi aplicată la împlinirea a fiecăror 12 luni), să se calculeze câştigul net al depozitului la sfârşitul perioadei.