1. Ce este o variabila?
Gandeste-te la o variabila ca la o cutie etichetata: eticheta este numele (varsta), continutul este valoarea (15), iar forma cutiei este tipul (intreg). Poti schimba continutul, dar eticheta ramane la fel.
2. Tipuri de date principale
Cele mai folosite tipuri de date, cu numele lor in Python si C++:
| Tip | Python | C++ | Exemplu |
|---|---|---|---|
| Numar intreg | int | int | 42, -7, 0 |
| Numar real (zecimal) | float | float / double | 3.14, -2.5 |
| Text (sir de caractere) | str | string | "Hello" |
| Logic (adevarat/fals) | bool | bool | True / False (Py), true / false (C++) |
In Python, functia type() iti spune tipul unei valori:
# Tipul se deduce automat din valoare varsta = 15 medie = 9.75 nume = "Maria" esteMajor = False print(type(varsta)) print(type(medie)) print(type(nume)) print(type(esteMajor))
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>
3. Declarare si initializare in Python
In Python nu scrii tipul: el este dedus automat din valoarea pe care o atribui (tipare dinamica). A declara = a aduce variabila in existenta; a initializa = a-i da prima valoare.
# Declarare + initializare intr-o singura linie varsta = 15 nume = "Maria" medie = 9.75 esteMajor = False # Afisare print(varsta) print(nume) print(type(esteMajor))
15 Maria <class 'bool'>
Numele unei variabile NU poate incepe cu o cifra si nu poate contine spatii. Foloseste nume sugestive: medieElev, nu m. Python face diferenta intre litere mari si mici: nota si Nota sunt doua variabile diferite.
4. Conversii intre tipuri si impartirea
Uneori ai o valoare de un tip dar ai nevoie de altul. Conversia (type casting) se face cu int(), float(), str(). Important: input() intoarce mereu text!
# Conversii text = "42" numar = int(text) # string -> int print(numar + 8) nota = float("9.50") # string -> float print(nota) # Impartirea: reala (/) vs intreaga (//) vs rest (%) x = 7 y = 2 print(x / y) # impartire reala print(x // y) # cat intreg print(x % y) # rest print(int(3.99)) # trunchiere catre 0 print(str(2026) + "!") # int -> string pentru concatenare
50 9.5 3.5 3 1 3 2026!
int(3.99) da 3, nu 4 — conversia la intreg trunchiaza (taie zecimalele), nu rotunjeste. Pentru rotunjire foloseste round().
5. Acelasi lucru in C++ EXCLUSIV INTENSIV
C++ se preda doar la profilul intensiv, ca al doilea limbaj. In C++ tipul trebuie declarat explicit (tipare statica) si fiecare instructiune se termina cu ;.
#include <iostream> #include <string> using namespace std; int main() { int varsta = 15; string nume = "Maria"; double medie = 9.75; bool esteMajor = false; cout << varsta << endl; cout << nume << endl; cout << medie << endl; cout << esteMajor << endl; // bool se afiseaza 0 sau 1 return 0; }
15 Maria 9.75 0
Doua diferente importante pe care le vezi in output:
- In C++,
bool falsese afiseaza ca 0 (in Python ar fiFalse). - In C++, impartirea a doi
intda tot unint(catul intreg), spre deosebire de/din Python.
#include <iostream> using namespace std; int main() { int x = 7, y = 2; cout << x / y << endl; // int / int -> cat intreg cout << x % y << endl; // rest cout << (double)x / y << endl; // cast la double -> impartire reala cout << sizeof(int) << " " << sizeof(double) << " " << sizeof(char) << endl; return 0; }
3 1 3.5 4 8 1
sizeof arata cati octeti (bytes) ocupa fiecare tip in memorie: int = 4, double = 8, char = 1. In Python interpretorul gestioneaza memoria automat.