Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!
Python segítség, lista
LM96
kérdése
313
1. Tölts fel egy listát számokkal, melyeket a felhasználó ad meg (kilépés: vége)
2. Melyik elemet távolítsuk el a listából:
Mindaddig távolítson el elemet a listából, amíg olyan értéket ad meg a felhasználó, ami megtalálható a listában!
Ez a feladat. Az első rész sima, ezzel meg is vagyok . A 2.-ban nem tudom hogyan kellene a ciklust formázni, hogy jó legyen. Jelenleg a lista.append() és a lista.remove() parancsokkal próbálkozom és ott tart a program, ha kiíratom, hogy mindig hozzáadja a számot amit újonnan beírok. Kérlek segítsetek milyen irányba induljak tovább!
Jelenleg 1 felhasználó nézi ezt a kérdést.
python, lista, while, ciklus, remove, append
0
Középiskola / Informatika
Válaszok
1
bnc{ Informatikus }
megoldása
Szia
Bár azt írtad, hogy kész az első rész, de azért összesítve írnám a tanácsomat, hogy ha esetleg más is ilyen feladattal bajlódna.
Alapvetően én ezt két ciklusra bontanám. Az első ciklust egy hátultesztelő ciklussal oldanám meg. Ennek a megvalósítása Pythonban nem feltétlenül egyértelmű. Úgy tudod megcsinálni, hogy kell egy while True, majd benne történik a beolvasás. Beolvasol, és ellenőrzöd, hogy a beolvasott adat "vége"-e. Ha igen, akkor megtöröd a ciklus futását a "break" utasítással. Ha pedig nem "vége" a bemenet, akkor szimplán append segítségével felveszed a tömbödbe az új számot.
A második feladatot félreértettem, így az erre adott javaslatot frissítem: (Köszi a kiegészítésért 2 hete nem aludtamnak)
Akkor itt is egy hátultesztelő ciklushoz hasonló megoldást csinálj, amiben bekérsz egy értéket. Ha az érték benne van a listában, akkor vedd ki. Ha pedig nincs, akkor törd meg a ciklust break-kel. Így ameddig olyan értékeket adsz meg amik benne vannak, addig végig törölni fog.
Próbáltam egy egyszerű, remélhetőleg számodra is érthető megoldási javaslatot tenni. Ha bármi kérdésed van, nyugodtan kérdezz.
Amennyiben a válaszom segített, kérlek jelöld meg megoldásként. Köszi
Módosítva: 3 éve
1
2 hete nem aludtam:
Én úgy értelmeztem, hogy adott esetben több értéket is el kell távolítani a tömbből, mert addig kell eltávolítani az értékeket újra és újra, amíg azok megtalálhatóak a listában. Így meg egyszerűbb szerintem egy sima if value in array ... else break megoldás.
3 éve1
bnc:
Igaz, rá kell jönnöm, hogy nem tudok olvasni.
3 éve0
LM96:
Köszi szépen! A két hátultesztelő ciklusom megvolt, az elv is megvolt, pontosan így gondolkodtam. Az az elméleti anyag hiányzott, hogy "ha az érték eleme a listának", pedig mint látom rém egyszerű, de valamiért túlbonyolítottam. Köszi szépen még egyszer mindkettőtöknek!
3 éve0