Skip to content

Structuri liniare

Structurile liniare reprezintă cel mai simplu mod de organizare a unui program. Instrucțiunile sunt executate secvențial (una după alta), în ordinea în care sunt scrise.

Caracteristici

  • Execuția este de sus în jos
  • Fiecare instrucțiune se execută o singură dată
  • Nu există ramificări sau repetiții

Variabile și tipuri de date

Toate variabilele în Python sunt obiecte - structuri de date care pot stoca orice tip de valoare. Poți atribui orice valoare fără a preciza tipul, și chiar actualiza valoarea cu un tip diferit:

x = 3
y = 2.15
print(x, y)

x = "abc"
print(x)
3 2.15
abc

Putem considera fiecare variabilă o cutie cu un nume (x, y etc.) și un element înăuntru (23, "doi" etc.). Funcția type() returnează tipul de date:

x = 23
type(x)
int
y = 6.3
type(y)
float
z = "doi"
type(z)
str

Tipuri de date de bază

Tip Descriere Exemple
int Număr întreg (fără virgulă) 5, -3, 1000
float Număr cu virgulă (floating point = "virgulă mobilă") 3.14, -2.5
str Șir de caractere (string) "salut", "Ana"
bool Valoare logică boolean True, False

Atribuirea

x = 5
nume = "Maria"
lista = [1, 2, 3]

Citirea datelor

Funcția input() citește o linie de la tastatură. Atenție: rezultatul este întotdeauna de tip string, chiar dacă utilizatorul introduce un număr.

x = input()
print(x, 'are tipul', type(x))
2
2 are tipul <class 'str'>
x = input()
y = int(x)

print('x =', x, 'are tipul', type(x))
print('int(x) =', y, 'are tipul', type(y))
3
x = 3 are tipul <class 'str'>
int(x) = 3 are tipul <class 'int'>

Conversie de tip (type casting)

Type casting înseamnă transformarea unei valori dintr-un tip în altul:

a = input("Scrie un numar: ")
print(a, type(a))
Scrie un numar: 34
34 <class 'str'>
b = int(a)  # Convertește string la int
print(b, type(b))
34 <class 'int'>

Pentru numere cu virgulă:

a = "123.45"
print(a, type(a))

b = float(a)  # Convertește string la float
print(b, type(b))
123.45 <class 'str'>
123.45 <class 'float'>

Citirea mai multor numere

Metoda .split() desparte un string în bucăți (implicit la spații):

x = input()
print("input:", x)
x = x.split()
print("x.split():", x)
a = x[0]
b = x[1]
print("a =", a, ", b =", b)
print("a + b =", a + b)  # Concatenare de stringuri!
a = int(a)
b = int(b)
print("a + b =", a + b)  # Adunare de numere
3 56
input: 3 56
x.split(): ['3', '56']
a = 3 , b = 56
a + b = 356
a + b = 59

Afișarea datelor

Funcția print() afișează orice tip de date. Argumentele separate prin virgulă sunt afișate cu spațiu între ele:

print('Ana are mere.')
Ana are mere.
print(3, 6 + 2)
3 8
print("Mesaj simplu")
print(f"Valoarea lui x este {x}")  # f-string pentru formatare
print(a, b, c, sep=", ")           # Separator personalizat

Parametrii sep și end

În mod normal, print() pune spațiu între argumente și trece pe rândul următor la final. Poți schimba asta:

print(3)
print(4)
3
4
print(3, end=' ')  # Nu trece pe rând nou, pune spațiu
print(4, end=' ')
3 4
print(3, end=' * ')
print(4, end='!')
3 * 4!

Operații aritmetice

x = 23
y = 12

print("x =", x)
print("y =", y)
print("x + y =", x + y)
print("x - y =", x - y)
print("x * y =", x * y)
x = 23
y = 12
x + y = 35
x - y = 11
x * y = 276

Împărțirea

Câtul împărțirii întregi (//) - returnează partea întreagă:

print("x // y =", x // y)
x // y = 1

Restul împărțirii (%) - operatorul modulo:

print("x % y =", x % y)
x % y = 11

Extragerea cifrelor dintr-un număr

Folosind restul și câtul împărțirii la puteri ale lui 10:

x = 65273
print("Cifra unitatilor:", x % 10)
print("Ultimele 2 cifre:", x % 100)
print("Ultimele 3 cifre:", x % 1000)
Cifra unitatilor: 3
Ultimele 2 cifre: 73
Ultimele 3 cifre: 273
print("Numarul fara cifra unitatilor:", x // 10)
print("Fara ultimele 2 cifre:", x // 100)
print("Fara ultimele 3 cifre:", x // 1000)
Numarul fara cifra unitatilor: 6527
Fara ultimele 2 cifre: 652
Fara ultimele 3 cifre: 65

Ridicarea la putere

x = 2
y = 5

print("x ** y =", x ** y)
x ** y = 32

Rezumat operații

suma = a + b
diferenta = a - b
produs = a * b
cat = a / b          # împărțire reală (returnează float)
cat_intreg = a // b  # împărțire întreagă
rest = a % b         # modulo (rest)
putere = a ** b      # ridicare la putere

Exemplu complet

Ordinea execuției într-un program liniar:

# Calculul ariei unui dreptunghi
lungime = 10
latime = 5
aria = lungime * latime
print(f"Aria dreptunghiului este: {aria}")
  1. Se atribuie valoarea 10 variabilei lungime
  2. Se atribuie valoarea 5 variabilei latime
  3. Se calculează produsul și se stochează în aria
  4. Se afișează rezultatul

Aplicație practică

# Conversie temperatură din Celsius în Fahrenheit
celsius = float(input("Temperatura în Celsius: "))
fahrenheit = celsius * 9/5 + 32
print(f"{celsius}°C = {fahrenheit}°F")

Exerciții

sum00, Urare, scadere2, asii, uciv

sumacifre2, sumcif

a16, sumapatratecifre

ultimacifraapartiiintregi, primacifraapartiizecimale

Temă

globuri

Toate problemele medii de la Operatori și Expresii