Kezdőoldal » Számítástechnika » Programozás » Kezdő Python-os vagyok és...

Kezdő Python-os vagyok és elakadtam. Hogy tudnék tovább haladni ?

Figyelt kérdés

IndexError: list assignment index out of range ezt a hibakódot kapom vissza egy while ciklusban. Lentebb linkeltem a teljes kódomat.


[link]



2021. júl. 29. 18:33
1 2 3 4
 1/37 anonim ***** válasza:
69%

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..

2021. júl. 29. 18:37
Hasznos számodra ez a válasz?
 2/37 A kérdező kommentje:
A feladatom úgy szól hogy addig kérjem be a felhasználótól a számokat amég nem nullát ír és amikor nullát ír egy break-el megszakítanám. Probáltam már ugy is hogy a while ciklus csak addig fusson ameddig a szam nem lesz egyenlő 0-val de úgy is ezt a hibát kaptam vissza
2021. júl. 29. 18:43
 3/37 anonim ***** válasza:
20%

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)

2021. júl. 29. 18:46
Hasznos számodra ez a válasz?
 4/37 A kérdező kommentje:

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())

2021. júl. 29. 18:48
 5/37 A kérdező kommentje:

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

2021. júl. 29. 18:51
 6/37 A kérdező kommentje:
Mindkettőnél ugyan azt a hibát dobja fel tehát nem a break-el van a gond
2021. júl. 29. 18:51
 7/37 anonim ***** válasza:
53%

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.

2021. júl. 29. 18:59
Hasznos számodra ez a válasz?
 8/37 anonim ***** válasza:
53%

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

2021. júl. 29. 19:02
Hasznos számodra ez a válasz?
 9/37 anonim ***** válasza:
91%

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.

2021. júl. 29. 19:10
Hasznos számodra ez a válasz?
 10/37 anonim ***** válasza:
26%

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...

2021. júl. 29. 19:14
Hasznos számodra ez a válasz?
1 2 3 4

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!