Python szövegkezelő függvények

A programozásban gyakran kell szövegeket (stringeket) módosítani, vizsgálni vagy feldolgozni. A Python számos beépített függvényt nyújt erre. Ezek segítségével könnyebben tudunk szövegekkel dolgozni.

Mit nevezünk stringnek?

A string egy szöveg, amelyet idézőjelek között írunk:

szoveg = "Sziasztok!" nev = 'Péter' hosszu = """Ez egy több soros szöveg"""

A legfontosabb szövegkezelő függvények

Függvény Mit csinál? Példa
.lower() Kisbetűssé alakít "HELLO".lower() → "hello"
.upper() Nagybetűssé alakít "hello".upper() → "HELLO"
.capitalize() Első betű nagy, többi kis "hello world".capitalize() → "Hello world"
.title() Minden szó nagy kezdőbetűvel "hello world".title() → "Hello World"
.strip() Eleje és vége szóközeit eltávolítja " hello ".strip() → "hello"
.replace() Szövegrészt másikra cserél "hello".replace("l", "L") → "heLLo"
.split() Szöveget szavakra darabolja "hello world".split() → ["hello", "world"]
.join() Listát szöveggé fűzi össze "-".join(["a", "b", "c"]) → "a-b-c"
.find() Megkeresi a szöveg helyét "hello".find("l") → 2
.count() Megszámolja az előfordulásokat "hello".count("l") → 2
.startswith() Ellenőrzi, hogy mivel kezdődik "hello".startswith("he") → True
.endswith() Ellenőrzi, hogy mivel végződik "hello".endswith("lo") → True
.isdigit() Ellenőrzi, hogy csak számjegy-e "123".isdigit() → True
.isalpha() Ellenőrzi, hogy csak betű-e "hello".isalpha() → True

Gyakorlatban:

.lower() és .upper() — Betűméretek

nev = "PéTER" print(nev.lower()) # péter print(nev.upper()) # PÉTER # Miért hasznos? # Ha olyan szöveget szeretnél összehasonlítani, # amelynek a betűmérete nem számít: felhasznalo_input = "Budapest" if felhasznalo_input.lower() == "budapest": print("Helyes város!")

.split() — Szöveg feldarabolása

mondat = "Az alma piros és édes" szavak = mondat.split() print(szavak) # ['Az', 'alma', 'piros', 'és', 'édes'] # Más karakterrel is lehet darabolni: szamok = "1,2,3,4,5" szamok_listaja = szamok.split(",") print(szamok_listaja) # ['1', '2', '3', '4', '5']

.join() — Lista szöveggé alakítása

szavak = ["Hello", "világ", "!"] # Összefűzés szóközzel: eredmeny = " ".join(szavak) print(eredmeny) # "Hello világ !" # Összefűzés kötőjellel: szavak2 = ["alma", "körte", "banán"] eredmeny2 = "-".join(szavak2) print(eredmeny2) # "alma-körte-banán"

.replace() — Csere

szoveg = "A macska szeret aludni" uj_szoveg = szoveg.replace("macska", "kutya") print(uj_szoveg) # "A kutya szeret aludni" # Több karaktert is lehet: szoveg2 = "aaabbbccc" uj_szoveg2 = szoveg2.replace("a", "x") print(uj_szoveg2) # "xxxbbbccc"

.find() — Keresés

szoveg = "Hello world" # Hol van az "o"? pozicio = szoveg.find("o") print(pozicio) # 4 # Ha nem találja meg: pozicio2 = szoveg.find("xyz") print(pozicio2) # -1

.count() — Számlálás

szoveg = "banán banán banán" # Hányszor fordul elő "banán"? darab = szoveg.count("banán") print(darab) # 3 # Karakterek számlálása: szoveg2 = "mississippi" i_ok = szoveg2.count("i") print(i_ok) # 4

Igaz/hamis függvények

szoveg = "12345" szam_szoveg = szoveg.isdigit() print(szam_szoveg) # True szoveg2 = "hello123" csak_betuk = szoveg2.isalpha() print(csak_betuk) # False szoveg3 = "hello" kezdodike_h = szoveg3.startswith("he") print(kezdodike_h) # True

Összetett feladatok

# Feladat: Számláld meg a magánhangzókat! szoveg = "Python" szoveg_kis = szoveg.lower() maganhangzok = "aeiouáéíóöőüű" szamlalo = 0 for karakter in szoveg_kis: if karakter in maganhangzok: szamlalo += 1 print(f"Magánhangzók száma: {szamlalo}") # 1
# Feladat: Szavak szűrése hossz alapján mondat = "Az apple alma és körte" szavak = mondat.split() hosszu_szavak = [] for szo in szavak: if len(szo) > 3: hosszu_szavak.append(szo) print(hosszu_szavak) # ['apple', 'alma', 'körte']

Emlékeztetõ: A len() függvény

Szöveg hossza (karakterek száma):

szoveg = "Hello" hossza = len(szoveg) print(hossza) # 5 szavak = szoveg.split() print(len(szavak)) # 1

Összefoglalás

Mit szeretnél csinálni? Használd ezt:
Szöveget feldarabolni .split()
Szavakat újra összerakni .join()
Nagybetűs/kisbetűs alakra hozni .upper() / .lower()
Szövegrészt cserélni .replace()
Szöveg hosszát tudni len()
Megtalálni egy részt .find() vagy .count()
Ellenőrizni valamit .startswith(), .endswith(), .isdigit() stb.