30_SZAM_SZAMJEGYEI_KAR

30_SZAM_SZAMJEGYEI_KAR

SZAM_SZJ_CHAR.py

engedelyezett = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'e', 'E', '.']

karlanc = " "

print("Kérem a számot: (kilépés Q-val)")

karakter = ""

while karakter != "Q":

     bemenet = input("Adj meg egy karaktert: ")

     if bemenet:

           karakter = bemenet[0]

     else:

             karakter = ""

     if karakter in engedelyezett:

           karlanc += karakter

           print("vissza:", karakter)

print("A beírt karakterek:", karlanc)

A program minden ciklusban bekér egy karaktert.

bemenet[0] = a felhasználó által beírt szöveg első karaktere

Ha a karakter az engedélyezett listában van → hozzáfűzi a karlanc-hoz.bemenet[0] = a felhasználó által beírt szöveg első karaktere.


else:

karakter = ""

Ez akkor fut le, ha a felhasználó csak Entert nyom, vagyis az input() üres sztringet ad vissza:

  • bemenet == ""

  • nincs első karakter (bemenet[0] hibát okozna)

Ezért az else-ben a program biztonságosan beállítja a karakter változót egy üres sztringre.


Ha a felhasználó Q-t ír → kilép.

A végén kiírja az összegyűjtött karaktereket.

A beolvasott számjegy karaktereket a karlanc karakterlánc típusú változóban "összegezzük+. A beolvasott karaktereket összefűzzük, láncoljuk egy karakterlánccá.

Az előző feladatokbanszámokat összegeztünk, karaktereket láncoltunk. Alkalmaztuk az "összegzési" tételt. Az "összegzési elnevezés – így idézőjelek között - arra utal, hogy nemcsak az összegzés, hanem a szorzat kiszámítása, a karakterek láncolása és a halmaz típusú adatoknál a halmaz létrehozása is hasonlóan történik, mint a számok összegzése.

Minden esetben kell egy változó, ahová "összegyűjtjük" a számítások eredményét, a karaktereket, ill. a halmaz elemeit. Ennek a változónak, a számítások, a karakter láncolássa, a halmaz adatainak megadása előtt kezdőértéket kell adni. Végül az eredményt, ennek a változónak az értéke adja.

Az összegzés algoritmusa mondatszerű leírással:

Összegzés
Be: N
S=0
Ismétlés I=1-től N-ig
    Be: adat

    S=S+adat

Ismétlés vége

Ki: S

A karaktervadász

Egyszer volt, hol nem volt, élt egy kis program, akit Karaktervadásznak hívtak. A feladata az volt, hogy az emberek által megadott karaktereket gyűjtse össze és összeállítsa belőlük a legkülönlegesebb láncot, amit valaha láttak.

engedelyezett = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'e', 'E', '.']

Karaktervadász gondosan összeállította azt a listát, amit ő "engedélyezett karaktereknek" nevezett. Ez a lista volt a szabály, amely szerint eldöntötte, hogy mely karaktereket gyűjtheti be, és melyeket kell figyelmen kívül hagynia.

karlanc = " "

Elindította a kalandját egy üres lánccal, amelybe szorgosan felfűzhetett minden elfogadott karaktert. Ez a lánc volt az ő gyűjteménye, amely minden beérkező karakterből épült.

print("Kérem a számot: (kilépés Q-val)")

Mielőtt Karaktervadász elindult volna, vidáman köszöntötte az embereket. "Kérem a számot: (kilépés Q-val)" – mondta, ezzel megnyitva az ajtót az interakció előtt.

karakter = ""

Minden új kezdet tiszta lappal indul. Karaktervadász először üres helyet hagyott, ahova az emberek karaktereit felírhatta.

while karakter != "Q":

Karaktervadász új szabályt vezetett be: addig gyűjtöget, amíg valaki nem mondja neki azt, hogy "Q", ami a kaland végét jelezte.

     bemenet = input("Adj meg egy karaktert: ")

"Adj meg egy karaktert" – kérte a Karaktervadász az emberektől. Kíváncsian várta, hogy ki mit ajánl neki, hátha valami érdekeset talál.

     if bemenet:

Ha a bemenet nem üres, nem nulla, nem hamis érték… akkor igaznak számít.

Ha az emberek szívesen adtak valamit, Karaktervadász boldogan fogadta be a karaktereket. Mindig remélte, hogy valami új és izgalmas következik.

         karakter = bemenet[0]

Ahogy megkapta az első karaktert, gyorsan ellenőrizte, és eldöntötte, hogy érdemes-e felvenni a gyűjteményébe.

      else:

Ha senki nem adott neki karaktert, csak üres választ kapott, Karaktervadász csalódottan továbbállt.

          karakter = ""

Ebben az esetben visszatért az alapállapotába, várva, hogy valaki végre új karakterrel lepje meg.

if karakter in engedelyezett:

Amikor Karaktervadász találkozott egy karakterrel, gondosan ellenőrizte, hogy az szerepel-e az "engedélyezett karakterek" listáján. Csak akkor fogadta el, ha megfelelt a szabályainak.

     karlanc += karakter

Az elfogadott karaktereket gyorsan felfűzte a láncra, így a gyűjteménye egyre hosszabb és különlegesebb lett.

     print("vissza:", karakter)

 csak visszajelzés

Ez azt jelenti:

a program jelzi a felhasználónak, hogy elfogadta a karaktert

és azt is, hogy melyik karaktert fogadta el

print("A beírt karakterek:", karlanc)

Amikor a kaland véget ért, Karaktervadász büszkén bemutatta a végső láncot: a beírt karaktereket, amelyek történetté fűződtek.