Kezdőoldal » Számítástechnika » Programozás » Hogy lehet a teknőcöt kétszer...

Hogy lehet a teknőcöt kétszer is átnevezni egymás után?

Figyelt kérdés

Ha azt írom pythonban, hogy:

valami = turtle.Turtle(), akkor "valami" lesz a teknős neve.


De ha azt írom, hogy:

valami = turtle.Turtle()

valami2 = turtle.Turtle(), akkor meg két teknős lesz, amit irányítani lehet.


Azt hogy lehetne megcsinálni, hogy csak egy teknős legyen a második átnevezés után is?


2020. jan. 19. 17:21
1 2
 11/15 anonim ***** válasza:
100%

[link]


Olvasd el ezt.

2020. jan. 19. 20:41
Hasznos számodra ez a válasz?
 12/15 anonim ***** válasza:
100%

Nem azért a két fillérért, de amíg olyan alapfoglamakkal nem vagy tisztában, mint a változók, addig egyetlen teknőst sem kellene irányítani.

Merthogy mind a kérdésedből, mind a válaszokra reflektáló kommentjeidből kitűnik, hogy bizony egyáltalán nem érted, mit csinál a kód, amit bepötyögsz.


Elmagyaráznám, mi az a változó és hogyan működik, de akkor ennek birtokában vidáman próbálnál tovább olyan programokat írni, amik egyelőre messze túlmutatnak a tudásodon.

Afelől pedig nincs nagyon kétségem, hogy ha a változókkal gondod akadt, akkor lesz ott másik olyan teljesen alapvető koncepció is, amit nem értesz.


Ha valaki éppen megtanult forrasztani, de a voltot a wattól nem tudja megkülönböztetni, az ne akarjon műholdat építeni. Keress egy tisztéssegesen, szakszerűen összerakott tananyagot, és becsülettel csináld végig a benne foglaltakat egészen addig, amíg az alapokat bombabiztosan meg nem érted. Utána vissza lehet térni a teknősidomításhoz.


Csak remélni tudom, hogy az itt kirajzolódó szituáció nem iskolai oktatás folyománya, mert ha mégis, akkor volna egy-két keresetlen szavam (de minimum kínos kérdésem) a tanárodhoz.

2020. jan. 20. 07:08
Hasznos számodra ez a válasz?
 13/15 tabaki ***** válasza:

@#10: „azt szeretném csak azt hajtsa végre, ahová valami2-t írtam.”

Jó gyakoris szokás szerint most is csak a lényeg hiányzik, vagyis az a művelet, amelyet te a valami-ről valami3-re való „átnevezésnek” titulálsz. A kódban sehová sem írtál valami2-t, erre alapozva legyen okos az ember... A szándékod mindenesetre korántsem világos, mert annak, hogy egy azonosítót menet közben tragikus hirtelenséggel átnevezz, semmi értelme. Ha a program közepéig valaminek hívták azt a boldogtalan teknőcöt, miért ne maradhatna meg a neve a továbbiakban is?


Tegyük félre, hogy nem tudok Pythonban programozni, és hadd próbáljam meg laikusként is értelmezni, mi lehetne a programodban. Tételezzük fel, hogy a valami2 változó pont ugyanúgy kerül a kódba, mint a valami:

valami = turtle.Turtle()

valami2 = turtle.Turtle()

Ekkor semmit nem neveztél át, hanem létrehoztál két külön teknőc-objektumot, ezek egyike a valami, másika a valami2. Ha ezek után „azt szeretnéd, csak azt hajtsa végre, ahová valami2-t írtál”, akkor értelemszerűen azt a teknőcöt kell mozgatnod, pl.:

valami2.forward(100)

Ha ezután megint a másikkal akarsz kezdeni valamit, akkor arra hivatkozol, pl:

valami.left(90)

A két tekenyősbéka egymástól függetlenül létezik a programodban, és azt irányítod, amelyiket akarod – szerintem eleve esélytelen, hogy ne csak azt érd el, amelyiket éppen megcéloztad.

Van egy olyan elképzelésem, hogy esetleg csakugyan szükséged van mindkét objektumra, de azt szeretnéd, hogy a teknőc rajza csak azon jelenjen meg, amelyikkel éppen foglalkozol. Ezt úgy oldhatod meg, hogy az egyiken mindig kikapcsolod a teknőc láthatóságát, a másikon meg be, például:

valami.hideturtle()

valami2.showturtle()

De lehet az is, hogy holmi rejtélyes oknál fogva csakugyan két különböző nevű teknőcöt kell létrehoznod, viszont nincs szükséged az egyikre (mellesleg akárhogy ürgetem-forgatom, erre nem sikerül igazán életszerű helyzetet kiagyalnom). Ekkor sem a fölöslegessé vált objektumot nevezed át, hanem azt törölve...

del valami

...létrehozod a másikat egy másik (vagy éppenséggel azonos) névvel:

valami2 = turtle.Turtle()

A fentiekkel szemben, ha jól értem, akkor a valami2 = valami értékadáskor ellenben az történik, hogy egy olyan újabb változót hozol létre, amelyik ugyanarra az objektumra hivatkozik, azt tehát ezentúl valami2 néven IS kezelheted. Tehát nem neveztél át semmit (a valami szintén ott van még, és használható), de újabb teknőcöd sincs, ugyanazt működteted mindkét változón keresztül. A del utasítással egyébként itt is megszüntetheted a fölöslegesnek ítélt valami változót, és akkor csak a valami2 marad. Ja, meg a fájdalmas kérdés: Mire volt jó ez a sajátos vargabetű?

Mellesleg nem ártana, ha részletesebben is kifejtenéd, hogy mi lenne az átnevezési manőver célja, mert egyelőre nem úgy tetszik, mintha füle-farka lenne az egésznek.

2020. jan. 20. 12:45
Hasznos számodra ez a válasz?
 14/15 A kérdező kommentje:

"de újabb teknőcöd sincs, ugyanazt működteted mindkét változón keresztül."


Igazad van, tényleg két "neve" lesz a teknőcnek. azt hittem csak egy lesz ha ilyen formában adok neki új nevet, akkor már csak a legújabb névvel hivatkozhatok rá, nem tudtam, hogy ilyenkor két névvel is lehet rá hivatkozni

2020. jan. 21. 11:32
 15/15 anonim ***** válasza:
100%

Uhh ez a teknőcös learning nagyon rossz ahogy látom. Szerintem káros...


Bocsi hogy beszolok, tök jó hogy próbálkozol tanulni programozni, de az alapfogalmakkal nem vagy tisztába. A teknoc egy VALTOZÓ ami - valószínűleg egy Teknőc típusú - Objektum referenciáját tárolja.


Addig ne menj tovább az anyaggal amíg nem érted mi az hogy Érték típus és mi az hogy referencia típus. Ezeknek olvasds utána es értsd meg. Ezek nélkül nem lehet tovább haladni.


És még is érted miért vagyok ennyire értetlenek és a kérdésre a választ is megérted.

2020. jan. 21. 11:39
Hasznos számodra ez a válasz?
1 2

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!