Înapoi la blog
#python#input#tastatură#fundamente

Cum citești date de la tastatură în Python

Funcția input citește text de la tastatură, dar are câteva capcane. Învață cum convertești corect numerele, citești mai multe valori și eviți erorile.

Aproape orice program interactiv începe cu o întrebare: "ce date îmi dă utilizatorul?". În Python, răspunsul e funcția input. Pare simplă, dar are câteva capcane pe care e bine să le cunoști din prima.

Funcția input

input afișează un mesaj și așteaptă ca utilizatorul să scrie ceva și să apese Enter:

nume = input("Cum te cheama? ")
print("Salut,", nume)

Tot ce scrii în paranteză e mesajul (prompt-ul) care apare pe ecran.

Capcana numărul 1: input returnează mereu text

Indiferent ce scrie utilizatorul, input îți dă un șir de caractere (str). Chiar dacă scrie 5, tu primești textul "5", nu numărul 5.

a = input("a = ")
b = input("b = ")
print(a + b)   # daca scrii 2 si 3, afiseaza "23", nu 5!

De ce? Pentru că + pe două șiruri le lipește, nu le adună.

Conversia: int și float

Ca să faci calcule, trebuie să convertești textul în număr:

a = int(input("a = "))     # numar intreg
b = int(input("b = "))
print(a + b)               # acum aduna corect

pret = float(input("Pret: "))   # numar cu zecimale
print(pret * 1.19)
  • int(...) transformă în număr întreg.
  • float(...) transformă în număr cu virgulă (zecimal).
Ai nevoie deFolosește
Text (nume, adresă)input(...) direct
Număr întregint(input(...))
Număr zecimalfloat(input(...))

Citirea mai multor valori pe o linie

Dacă utilizatorul scrie mai multe valori separate prin spațiu, le poți despărți cu split:

date = input("Doua numere: ").split()
a = int(date[0])
b = int(date[1])
print(a + b)

Sau, mai elegant, cu despachetare:

a, b = input("Doua numere: ").split()
a, b = int(a), int(b)
print(a + b)

Pentru o listă întreagă de numere, combină split cu map:

numere = list(map(int, input("Numere: ").split()))
print("Suma:", sum(numere))

map(int, ...) aplică int pe fiecare bucată, iar list(...) strânge rezultatele într-o listă.

Capcana numărul 2: input care nu e număr

Dacă scrii int(input(...)) și utilizatorul tastează "abc", programul se oprește cu o eroare ValueError. Poți preveni asta cu try / except:

try:
    n = int(input("Da un numar: "))
    print("Patratul este:", n * n)
except ValueError:
    print("Aceea nu era un numar valid!")

Astfel programul rămâne politicos chiar și când datele sunt greșite.

Mici sfaturi care contează

  • Pune un spațiu la finalul prompt-ului ("Nume: ") ca răspunsul să nu fie lipit de mesaj.
  • Folosește .strip() ca să elimini spațiile accidentale: nume = input("Nume: ").strip().
  • Pentru da/nu, normalizează cu .lower(): raspuns = input("Continui? ").lower().
raspuns = input("Vrei sa continui? (da/nu) ").strip().lower()
if raspuns == "da":
    print("Continuam!")
else:
    print("Ne oprim aici.")

Un exemplu complet

print("=== Calculator de medie ===")
n = int(input("Cate note ai? "))
suma = 0
for i in range(n):
    nota = float(input(f"Nota {i + 1}: "))
    suma += nota
media = suma / n
print(f"Media ta este {media:.2f}")

{media:.2f} afișează rezultatul cu două zecimale.

Concluzie

Reține trei lucruri: input returnează mereu text, convertești cu int sau float, iar pentru date nesigure folosești try / except. Cu astea, poți construi orice program interactiv.

La ByteSchool înveți să scrii programe robuste, care nu pică la prima greșeală a utilizatorului — ghidat pas cu pas de mentori din Big Tech. Te așteptăm să exersăm împreună.