83_TÖMÖRÍTÉS

83_TÖMÖRÍTÉS

A "PPYYYTTHHOONNN PPYTHON PYTHHOON"szót a szóköz ls a szó karaktereiből alakítottuk ki egy szövegállományban. Tömörítsük össze az állományt!

Tömörítési módszerünk lényege, hogy azanos karakterek sorozatát megszámoljunk és megadjuk az ismétlőső karaktert, valamint az ismétlődések számát-

A "strázsa" most az a karakter lesz, amelyik már más, mint azok a karakterek, amelyeket számlálunk. Az elso változó értéke kezdéskor az első karakter lesz, a későbbiekben az, amelyik a "strázsa" volt. Amikor új strázsa lesz, akkor elölről kezdjük a számlálást.

Algoritmusunkat egy adatsor (részletének) feldolgozásával mutatjuk be.

TOMORITES.py

sor = "PPYYYTTHHOONNN PPYTHON PYTHHOON"

elso = sor[0]

db = 0

print(elso, db)

for i in range(len(sor)):

     if elso == sor[i]:

          db += 1

     else:

          print(elso, db)

elso = sor[i]

db = 1

print(elso, db)


1. A sor és az első karakter inicializálása

python

sor = "PPYYYTTHHOONNN PPYTHON PYTHHOON"elso = sor[0]db = 0print(elso, db)

sor tartalmazza az elemzendő szöveget.

elso az első karaktert tárolja (sor[0]).

db a számláló, ami azt követi nyomon, hogy az aktuális karakter hányszor ismétlődik.

A print(elso, db) sor az első karaktert és a számláló kezdeti értékét (0) írja ki. Például: 'P 0'.

2. Végigmegyünk a sor összes karakterén

for i in range(len(sor)):

if elso == sor[i]:

db += 1

A for ciklus karakterenként végighalad a sor-on.

Ha a jelenlegi karakter (sor[i]) megegyezik az előző karakterrel (elso), növeljük a számlálót (db += 1).

3. Új karakter és csoport lezárása

else:

print(elso, db)

elso = sor[i]

db = 1

Ha egy új karaktert találunk, akkor az előző karakter adatait kiírjuk:

print(elso, db) megjeleníti az előző karaktert és annak előfordulási számát.

Ezután frissítjük az elso változót az új karakterrel (elso = sor[i]), és a számlálót újrakezdjük (db = 1).

4. Az utolsó csoport kiírása

print(elso, db)

A ciklus vége után az utolsó karakter ismétlődéseit is ki kell írni, mivel ezt a ciklus közben nem tudjuk megtenni.

Példa bemenet és kimenet

Bemenet: sor = "PPYYYTTHHOONNN PPYTHON PYTHHOON"

Kimenet:

P 2

Y 3

T 2

H 2

O 2

N 3

4

P 2

Y 1

T 1

H 1

O 1

N 1

2

P 1

Y 1

T 1

H 2

O 2

N 1

A sorok mögötti szépség

Egyszer volt, hol nem volt, volt egyszer egy titokzatos szöveg, amely így szólt: "PPYYYTTHHOONNN PPYTHON PYTHHOON". Ez a szöveg egy rejtélyt hordozott, amelyet még senki sem fejtett meg – egy kód, amely csak arra várt, hogy felfedje titkait.

Egy nap egy kíváncsi lélek, aki imádott kísérletezni a betűkkel és számokkal, elhatározta, hogy megfejti ezt a titkot. Elsőként így szólt: "Nézzük meg, mi az első jel, és kezdjük az utunkat!" Így megszületett az ötlet:

elso = sor[0]

db = 0

print(elso, db)

Ezzel elkezdődött az utazás: az ismeretlen sorok közé vetette magát, hogy megtalálja az ismétlődő mintázatokat. Miközben haladt előre, minden lépésnél felkiáltott: "Ez még ugyanaz a jel! Számoljuk tovább!" Így születtek ezek a sorok:

for i in range(len(sor)):

if elso == sor[i]:

db += 1

De az élet mindig tartogat meglepetéseket, és amikor egy új betűvel találkozott, megállt egy pillanatra. "Új betű! A régi történetet lezárjuk, és egy új fejezetbe kezdünk!" – mondta, majd így folytatta:

else:

print(elso, db)

elso = sor[i]

db = 1

Ahogy közeledett az út végéhez, még egyszer átgondolta mindazt, amit megtudott, és utoljára így kiáltott fel:

print(elso, db)

És így derült fény a rejtélyre. A sor nem csupán betűk és számok összessége volt, hanem egy történet az ismétlődésről és a változásról. A kód nemcsak megoldotta a titkot, hanem megtanította, hogy minden egyes elemnek helye és jelentősége van – a sor részei együtt alkotnak egy egészet.

És a kíváncsi lélek elégedetten dőlt hátra, mondván: "Ez a történet nemcsak számokat és betűket fedett fel, hanem a sorok mögötti szépséget is.

Készítsd el weboldaladat ingyen! Ez a weboldal a Webnode segítségével készült. Készítsd el a sajátodat ingyenesen még ma! Kezdd el