Kezdő Python-os vagyok és elakadtam. Hogy tudnék tovább haladni ?
IndexError: list assignment index out of range ezt a hibakódot kapom vissza egy while ciklusban. Lentebb linkeltem a teljes kódomat.
Használsz egy while ciklust, de rosszul. Mi lehet a gond?
Hogy néz ki a te logikád?
- amíg 'true' addig fut a while.
Létre is hoztál egy végtelen ciklust, ami szarvashiba. Miért?
hogy kéne kinézzen a logikád?
megoldás:
- amíg az inputod nem 0, addig..
Bréket nem használhatsz.
Egy feltételhez kötsz egy futási intervallumot. Erre szolgál a while. While-t kell használnod. Olvasol esetleg valami programozó könyvet mellé? Ez teljesen nyelv független.
(amúgy a linken semmi sem szerepel)
a Breaket miért nem használhatom? az pont azt a célt szolgálja hogy egy ciklust megszakítson.
Kodom:
# Írj egy Python programot, amely a felhasználótól pozitív számokat kér be mindaddig, amíg a
# felhasználó nullát nem ad be! A program az összes értéket tárolja egy listában, majd írja ki a
# képernyőre a lista elemeit fordított sorrendben!
szam=1
i = 0
lista = []
while szam != 0:
szam = int(input("Kérek egy egész számot: "))
if szam != 0:
print ("Probáld újra!")
lista[i] = szam
i = i+1
else:
print (lista.reverse())
Itt a másik :
i = 0
lista = []
while True:
szam = int(input("Kérek egy egész számot: "))
if szam != 0:
print ("Probáld újra!")
lista[i] = szam
i = i+1
else:
print (lista.reverse())
break
Miért vizsgálod a while feltételeként, és egy külön if-el a nullát?
Nem használhatsz brake-t, mert ahol ezt használod ott kivétel nélkül mindig van egy szebb és jobb megoldás. Jelen esetben teljesen rosszul használod a programozási "építőkockákat", mint pl a while-t. A gondolataidat tedd rendbe, és írd le egy papírra sorról sorra, hogy mit csinál ez a kódod, és mit várnál el. Hidd el, meg fogod érteni. Bár ehhez az kéne, hogy olvasgass egy programozó oktatás könyvet, mert ha nem érted az alapokat, nagyon nehéz építkezni alapanyag nélkül.
egy kis segítség, bár erre neked kellene rájönnöd, és nem nekünk leírni
iterátor = 0
tömb = []
inputod = szám típus default érték
amíg az input nem egyenlő nullával, addig:
írdki: Próbáld újra
tömb eleme legyen az aktuális input
iterátort növeljük 1-el
írdki: Vége
írdki: tömb elemei fordított sorrendben
Nem tudom miből tanulsz, de felejtsd el gyorsan. Meg az eddigi válaszoló válaszait is.
A lista nevű tömböd végig 0 elemű marad, mivel nem adsz hozzá egyetlen elemet sem. Arra a lista.append(szam) való. Az i változóra semmi szükség.
9 miért kéne elfelejteni? Van esetleg valami indoklásod?
Miért lett lepontozva a 3? Tegye fel a kezét, akinél engednek production kódban break-et használni. Voltam pár cégnél, és mindig furcsán néztek code reviewn...
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!