Prvu gresku si napravio kada si ubacio kod u ovoj poruci. Jedna od osobina Python jezika je indentacija koda koja ovde ne postoji, pa je gotovo nemoguce shvatiti tvoj program. Da bi pravilno ubacio kod u poruku koristi prazna polja za indentaciju i Code tag.
Zbog svega ovoga ogranicicu se samo na unos podataka. Prvo pitas za broj cena koje ces ubaciti u listu, a zatim pitas za svaku cenu i dodajes je u listu. Kod koji si ti napisao izgleda ovako:
Code:
n=int(input("unesi broj"))
niz=[]*n #1
for i in range(n):
print "unesi cijenu"
print type(niz) #2
niz=input()
print type(niz) #3
if niz>0:
print "ispiši niz",niz
Za unos podataka 2, 10, 50 ispisuje:
Code:
>>> unesi broj2
unesi cijenu
<type 'list'>
10
<type 'int'>
unesi cijenu
<type 'int'>
50
<type 'int'>
ispiši niz 50
#1
niz = []*n - Zasto "*n" jer ne radi nista. "*n" se koristi kada zelis da kreiras listu u kojoj se elementi ponavljaju "n" puta. Na primer
Code:
>>>['a']*5
['a', 'a', 'a', 'a', 'a']
Dovoljno ti je da kreiras praznu listu sa "niz = []". a kasnije kada zelis da dodas cenu u listi uradis "niz.append(cena)".
#2 i #3
U ova dva reda koda ti stampa tip promenljive niz. Na pocetku niz pokazuje na listu (<type 'list'>), ali cim si napisao "niz=input()" niz pokazuje na interger (type 'int'>) i lista vise ne postoji. Kod bi trebao da izgleda ovako ("print type(niz)" nije potreban ali je ubacen zbog uporedjenja sa tvojim primerom):
Code:
n = int(input("unesi broj "))
niz = []
for i in range(n):
print("unesi cijenu")
print type(niz)
cena = input()
niz.append(cena)
print type(niz)
if niz > 0:
print "ispiši niz", niz
sa izlazom za 2, 10, 50:
Code:
>>> unesi broj 2
unesi cijenu
<type 'list'>
10
<type 'list'>
unesi cijenu
<type 'list'>
50
<type 'list'>
ispiši niz [10, 50]
Pozdrav