Search on blog:

Python: Jak podzielić tekst na dwóch lub więcej znakach nowej linii bez używania modułów.

Przykład pokazuje jak użyć pętle while do podzielenia tekstu na dwóch lub więcej znakach nowej linii bez dodatkowych modułów.

Wejście:

"Hello World.\nI'm very happy today.\n\n\n\n\nHow are you?\n\n\nBye."

Wyjście:

["Hello World.nI'm very happy today.", "How are you?", "Bye."]

Kod przechodzi od znaku do znaku i zlicza znaki nowej linii \n. Jeśli trafi na inny znak i count jest dwa lub więcej wtedy odcinia poprzedzający tekst bez znaków nowej linii bierze resztę tekstu (bez znaków nowej linii) i zeruje zmienne. Jeśli trafi na inny znak ale count` jest zero lub jeden to wtedy przechodzi do następnego znaku.

text = "Hello World.\nI'm very happy today.\n\n\n\n\nHow are you?\n\n\nBye."

results = []  # lista na pocięty tekst
count = 0     # licznik znaków nowej linii
i = 0         # index do przemieszczania się do następnego znaku w tekście

while text and i < len(text):
    if text[i] == '\n':
        count += 1    # zlicza znak nowej linii
        i += 1        # przechodzi do następnego znaku
    else:
        if count > 1:
            results.append(text[:i-count])
            inp = text[i:]
            count = 0
            i = 0
        else:
            count = 0  # zeruje licznik
            i += 1     # przechodzi do następnego znaku
if inp:
    results.append(text)  # dodaje pozostałą resztę

print(results)
If you like it
Buy a Coffee