Exercitii Fundamentale Python
Exercitiul 1: Verificare Paritate
Problema: Scrie o functie care verifica daca un numar este par.
def este_par(n):
return n % 2 == 0
# Test
print(este_par(4)) # True
print(este_par(7)) # False
print(este_par(0)) # True
Explicatie: Operatorul modulo % returneaza restul impartirii. Daca n % 2 == 0, numarul este par.
Exercitiul 2: Suma Cifrelor
Problema: Calculeaza suma cifrelor unui numar.
def suma_cifre(n):
n = abs(n) # Pentru numere negative
total = 0
while n > 0:
total += n % 10 # Ultima cifra
n //= 10 # Elimina ultima cifra
return total
# Test
print(suma_cifre(123)) # 6 (1+2+3)
print(suma_cifre(9876)) # 30
Exercitiul 3: Numar Prim
Problema: Verifica daca un numar este prim.
def este_prim(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
# Test
print(este_prim(7)) # True
print(este_prim(12)) # False
print(este_prim(2)) # True
Explicatie: Verificam doar pana la radacina patrata a lui n (optimizare).
Exercitiul 4: Inversare String
Problema: Inverseaza un string fara a folosi [::-1].
def inverseaza(s):
rezultat = ""
for c in s:
rezultat = c + rezultat
return rezultat
# Sau cu join
def inverseaza_v2(s):
return "".join(reversed(s))
# Test
print(inverseaza("Python")) # nohtyP
Exercitiul 5: Factorial
Problema: Calculeaza factorialul unui numar.
def factorial(n):
if n < 0:
raise ValueError("n trebuie sa fie >= 0")
if n <= 1:
return 1
rezultat = 1
for i in range(2, n + 1):
rezultat *= i
return rezultat
# Test
print(factorial(5)) # 120
print(factorial(0)) # 1
Exercitiul 6: Fibonacci
Problema: Genereaza primele n numere Fibonacci.
def fibonacci(n):
if n <= 0:
return []
if n == 1:
return [0]
fib = [0, 1]
while len(fib) < n:
fib.append(fib[-1] + fib[-2])
return fib
# Test
print(fibonacci(8)) # [0, 1, 1, 2, 3, 5, 8, 13]
Exercitiul 7: Conversie Temperatura
Problema: Converteste intre Celsius si Fahrenheit.
def celsius_to_fahrenheit(c):
return c * 9/5 + 32
def fahrenheit_to_celsius(f):
return (f - 32) * 5/9
# Test
print(celsius_to_fahrenheit(0)) # 32.0
print(celsius_to_fahrenheit(100)) # 212.0
print(fahrenheit_to_celsius(32)) # 0.0
Exercitiul 8: Validare Email Simpla
Problema: Verifica daca un string contine @ si un punct dupa @.
def email_valid(email):
if "@" not in email:
return False
parti = email.split("@")
if len(parti) != 2:
return False
return "." in parti[1]
# Test
print(email_valid("user@mail.com")) # True
print(email_valid("invalid")) # False
print(email_valid("no@domain")) # False
Puncte Cheie
- Foloseste
%pentru operatii cu cifre n**0.5sauint(n**0.5)pentru radacina patrata- Verifica cazurile limita (0, numere negative)
- Testeaza cu mai multe valori de input