Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

unos niza sa float brojevima

[es] :: Python :: unos niza sa float brojevima

[ Pregleda: 3380 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

echelon
Ne radim ništa...a da ti pravo kažem,
nemam ni kad...
Sam svoj majstor; elektronika/PC
CAP

Član broj: 8585
Poruke: 174
*.tel.net.ba.



+2 Profil

icon unos niza sa float brojevima10.09.2013. u 14:07 - pre 128 meseci
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
>>>
 
Odgovor na temu

[ivans]

Član broj: 59211
Poruke: 76
79.101.62.*



+3 Profil

icon Re: unos niza sa float brojevima11.09.2013. u 15:22 - pre 128 meseci
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
 
Odgovor na temu

[es] :: Python :: unos niza sa float brojevima

[ Pregleda: 3380 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.