Miért nem így működik ?
az a problémám, hogy miután megadom az első input-nál azt, hogy "h", megkapom ezt a részt, de ha megint beadom a "h" változót, akkor bemegy az else részbe és nem értem, hogy miért :(
Hálás lennék ha valaki eltudná magyarázni, hogy ez miért így történik és hogyan tudnám ezt orvosolni :)
while mainuinput == history or team:
Ez nem azt jelenti amire gondolsz. Ez a kifejezés ennek felel meg: (mainuinput == history) or team. A team bool-ra átkonvertálva True, úgyhogy sosem lép ki a ciklusból. Neked
mainuinput == history or mainuinput == team
kéne, esetleg:
mainuinput in [history, team]
Mellesleg itt már nem vizsgálod, hogy kis- vagy nagybetűvel adta be a felhasználó. Talán érdemesebb lenne az inputok eredményét kicsinyíteni, és akkor az ellenőrzéseknél már nem kell.
Az első if ág után van egy újabb if (nem elif), ezt biztos így akarod? Ha először h-t nyom az ember, akkor utána nyomhasson t-t is? Ha meg a "h" után nem t-t nyom, akkor jön csak az else ág?
Rajzold le a program működését egy folyamatábrán, pl. draw.io-n. Azt össze tudjuk hasonlítani a kóddal, most csak te tudod, hogy mit is kéne csinálnia. Tudom hogy unalmas, de az algoritmizálási képesség fejlesztéséhez elengedhetetlen az ilyen absztrakt programábrázolások megismerése.
lehet, hogy nem teljesen látszódik, hogy mit akarok, megpróbálom leírni:
input
(erre beadom neki a "h"-t)
print""
input
(ha erre az input-ra beadom neki a "h"-t, akkor ugyan ez a rész fusson le)
(ha a "t"-t kapja, akkor a "t" rész szépen le is fut meg ha oda h-t kap az inputra akkor is, de ha 2db "h"-t kap egymás után akkor a másodiknál ugye elmegy az else: részbe és én ezt nem szeretném, ez csak akkor történjen meg ha a kettő közül egyik változó sincs benne, akkor írja ki azt a részt és kérje be újra az inputot)
Ez már egy jó kezdet. Itt van egy leírás, hogy milyen "szabványos" elemeket használnak a leggyakoribb grafikus leírásban: [link]
Az ábráról még hiányzik a ciklus, azaz mikor megy vissza az elejére, honnan ugrik hova. Ez lehet egy feltétel, hogy ha a ciklusváltozó kisebb mint 10, akkor ugorjon vissza. És a ciklusváltozót is növeled egy dobozban. Illetve pár választási lehetőség is hiányzik, h után csak h-t, t után csak t-t rajzoltál fel. Itt kb. keresztbe is kéne mennie a nyilaknak, meg az "egyéb" válasznak is meg kéne jelennie, nem?
most így jó ?
ha "h" akkor a h/t rész fut le, ha "t" akkor a t/h
ezután vissza megy az elejére és ugyan ez folytatódik folyamatosan
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!