[ echelon @ 10.09.2013. 14:07 ] @
pozdrav ekipa, moze li pomoc?
gdje grijesim?

n=int(input("unesi broj"))
niz=[]*n
for i in range(n):
print("unesi cijenu")
niz=input()
if niz>0:
print("ispiši niz",niz)


s=0
for i in range(n):
print(niz)
s=s+niz
p=s/n
br=0
for i in range(n):
if niz>p:
br=br+1
print("cijena je veća od prosječne")
_______________________________________________________________________--
output:
Traceback (most recent call last):
File "C:\Documents and Settings\administrato\Desktop\4.py", line 11, in <module>
niz=input()
IndexError: list assignment index out of range
>>>
[ [ivans] @ 11.09.2013. 15:22 ] @
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