Python input() — kako unositi podatke

U ovoj lekciji naučićeš kako Python prima podatke od korisnika pomoću funkcije input(). Ovo je jedna od najvažnijih funkcija za početnike — omogućava interakciju korisnika i programa.


1. Kako radi input()?

Funkcija input() zaustavlja program, čeka da korisnik nešto otkuca i pritisne Enter. Rezultat koji korisnik unese se čuva u promenljivoj.

ime = input("Kako se zoveš? ")
print("Zdravo,", ime)

Uneseni tekst se čuva kao string.


2. Sve što korisnik unese je string

Važno: input() UVEK vraća string. Čak i ako korisnik unese broj, Python ga vidi kao tekst.

godine = input("Koliko imaš godina? ")
print(godine + 1)   # greška! string + broj

Zato brojeve moramo ručno pretvoriti iz stringa u broj.


3. Pretvaranje unosa u broj

Za ceo broj koristi se int(), a za decimalni float().

godine = int(input("Koliko imaš godina? "))
print(godine + 1)
temperatura = float(input("Unesi temperaturu: "))
print("Za 10 minuta temperatura će biti:", temperatura + 0.5)

4. Primeri

Unos imena

ime = input("Unesi ime: ")
print("Zdravo,", ime)

Unos godina

godine = int(input("Koliko imaš godina? "))
print("Za godinu dana imaćeš:", godine + 1)

Unos dva broja i sabiranje

a = float(input("Prvi broj: "))
b = float(input("Drugi broj: "))

zbir = a + b
print("Zbir je:", zbir)

5. Mini zadaci

  • Napiši program koji pita korisnika za ime i prezime i ispisuje poruku dobrodošlice.
  • Napiši program koji pita za godinu rođenja i ispisuje koliko korisnik ima godina.
  • Napiši program koji unosi tri broja i ispisuje njihov zbir.

Čestitam! Sada znaš da koristiš input() i da pretvaraš unos u brojeve — što je osnova za prave male programe.


Mini Python igrica — Popuni kod

Vežbaj osnovni Python kod popunjavanjem praznih mesta. Ova igrica je pre učenja selekcije (if) i služi za učenje promenljivih, sabiranja i ispisa.


Igrica 1: Prikaz imena

Popuni prazno mesto tako da se ispiše ime korisnika:


ime = "Ana"
print(______)
    

Igrica 2: Sabiranje brojeva

Popuni prazno mesto tako da se ispiše zbir a i b:


a = 5
b = 3
print(______)  # treba da prikaže 8
    

6. Napredniji primeri sa input()

Sada ćemo videti kako unos korisnika možemo koristiti u konkretnijim problemima. U ovim primerima kombinujemo int, float i string unose i osnovne proračune.


Primer 1: Računanje prosečne ocene (int)

# Unos ocena
ocena1 = int(input("Unesi prvu ocenu: "))
ocena2 = int(input("Unesi drugu ocenu: "))
ocena3 = int(input("Unesi treću ocenu: "))

# Računanje proseka
prosek = (ocena1 + ocena2 + ocena3) / 3
print("Prosek je:", prosek)

Ovde vidimo da unosimo cifre i koristimo ih za izračunavanje proseka. Bez int(), sabiranje ne bi radilo kako očekujemo.


Primer 2: Pretvaranje novca (float)

# Unos iznosa u evrima
eur = float(input("Unesi iznos u evrima: "))
kurs = 117.5

# Pretvaranje u dinare
din = eur * kurs
print(eur, "EUR je", din, "dinara")

Koristimo float() jer novac može biti decimalan broj.


Primer 3: Kreiranje jednostavne poruke (string)

ime = input("Unesi ime: ")
grad = input("Unesi grad: ")

poruka = f"Zdravo {ime}! Kako je u gradu {grad}?"
print(poruka)

Ovde kombinujemo dva string unosa i formiramo poruku koristeći f-string.


7. Zadaci za vežbu

Isprobaj svoje znanje sa ovim zadacima. Prvi tri imaju primer rešenja, a sledeća četiri su za samostalan rad.

Zadaci sa rešenjem

  1. Računanje obima pravougaonika (int)
    # Unos dužina stranica
    a = int(input("Unesi dužinu stranice a: "))
    b = int(input("Unesi dužinu stranice b: "))
    
    # Obim pravougaonika
    obim = 2 * (a + b)
    print("Obim pravougaonika je:", obim)
    
  2. Računanje potrošnje goriva (float)
    # Unos pređene distance i potrošnje po kilometru
    km = float(input("Unesi pređenu kilometražu: "))
    potrosnja_po_km = float(input("Unesi potrošnju po kilometru (l/km): "))
    
    # Ukupna potrošnja
    ukupno = km * potrosnja_po_km
    print("Ukupna potrošnja goriva je:", ukupno, "litara")
    
  3. Formiranje korisničkog pozdrava (string)
    ime = input("Unesi ime: ")
    prezime = input("Unesi prezime: ")
    poruka = "Zdravo, " + ime + " " + prezime + "!"
    print(poruka)
    

Zadaci za samostalan rad

  1. Napiši program koji pita korisnika za tri broja i ispisuje njihov proizvod.
  2. Napiši program koji pita korisnika za visinu i osnovu trougla i računa površinu.
  3. Napiši program koji pita korisnika za ime i godinu rođenja, a zatim ispisuje poruku koliko ima godina.
  4. Napiši program koji pita korisnika za naziv proizvoda i cenu, a zatim ispisuje poruku: "Proizvod X košta Y dinara".

Sada si spreman da kombinuješ unos podataka sa matematičkim i tekstualnim operacijama. Vežbaj ove zadatke i pokušaj da ih rešiš samostalno!

8. Bonus izazovi: kombinovanje int, float i string unosa

Ovi zadaci su malo zahtevniji jer kombinuju različite tipove podataka i više koraka proračuna. Odlični su za vežbanje logike i kontrole unosa.


Primer 1: Računanje popusta na kupovinu

# Unos imena korisnika i cene proizvoda
ime = input("Unesi svoje ime: ")
cena = float(input("Unesi cenu proizvoda: "))
popust = int(input("Unesi popust u procentima: "))

# Izračunavanje cene nakon popusta
cena_sa_popustom = cena * (1 - popust / 100)
print(f"{ime}, cena nakon popusta je: {cena_sa_popustom:.2f} dinara")

Ovde koristimo string za ime, float za cenu i int za procenat popusta. Primenjujemo formulu za popust i formatiramo rezultat sa dve decimale.


Primer 2: Provera visine i kategorizacija

ime = input("Unesi ime: ")
visina = float(input("Unesi visinu u cm: "))

if visina < 150:
    kategorija = "niska"
elif visina <= 180:
    kategorija = "srednja"
else:
    kategorija = "visoka"

print(f"{ime}, tvoja visina je {visina} cm i spadaš u kategoriju: {kategorija}.")

Kombinujemo string i float unose i koristimo if-elif-else strukturu za kategorizaciju.


Primer 3: Jednostavan kalkulator

print("Jednostavan kalkulator")
broj1 = float(input("Unesi prvi broj: "))
broj2 = float(input("Unesi drugi broj: "))
operacija = input("Izaberi operaciju (+, -, *, /): ")

if operacija == "+":
    rezultat = broj1 + broj2
elif operacija == "-":
    rezultat = broj1 - broj2
elif operacija == "*":
    rezultat = broj1 * broj2
elif operacija == "/":
    if broj2 != 0:
        rezultat = broj1 / broj2
    else:
        rezultat = "Greška: deljenje sa nulom!"
else:
    rezultat = "Nepoznata operacija"

print("Rezultat:", rezultat)

Ovaj primer kombinuje dva float unosa i string unos za izbor operacije. Daje dobar uvid u kontrolu toka programa i rad sa različitim tipovima podataka.


Bonus zadaci za samostalan rad

  1. Napiši program koji pita korisnika za ime, broj sati rada i cenu po satu, a zatim ispisuje platu.
  2. Napiši program koji unosi ime učenika i tri ocene, računa prosečnu ocenu i ispisuje poruku sa imenom i prosekom.
  3. Napiši program koji pita korisnika za naziv proizvoda, količinu i cenu po komadu, a zatim ispisuje ukupnu cenu.
  4. Napiši program koji pita korisnika za ime i godinu rođenja, a zatim ispisuje poruku da li je punoletan ili maloletan.

Ovi zadaci su odlična vežba za primenu svega što smo naučili o input(), konverziji tipova i radu sa različitim vrednostima u Python-u.

Skriveni mini kviz — Funkcija input() i konverzija tipova

Klikni da proveriš svoje znanje o unosu podataka i radu sa tipovima u Python-u!

Otvori kviz

Mini kviz: Da li si savladao lekciju?

1. Koji tip podataka vraća funkcija input()?




2. Šta će biti rezultat sledećeg koda?

x = 7
y = "2"
print(x + int(y))



3. Koja linija ispravno kombinuje string i broj u poruci koristeći f-string?




4. Koja funkcija se koristi za pretvaranje stringa u decimalni broj?




5. Šta će program uraditi?


ime = input("Unesi ime: ")
print("Zdravo,", ime)
        



6. Koja naredba ispravno sabira dva broja unesena preko input?