Stringek és műveleteik

Ahogy eddig láthattuk, a legtöbb programban amiben fájlokkal, inputokkal, outputokkal foglalkozunk, szükségünk van stringekre, így érdemes lenne megismerkedni, hogy miről van szó valójában, és milyen műveleteket végezhetünk rajtuk.

len(object) (length)

len() függvényt a legtöbb objektumon tudjuk használni, és visszaadja az adott objektum hosszát. Stringek esetében azt, hogy hány karakterből áll.

str.py
s = "Python"

print(len(s))
6

[] (indexelés)

Stringeken értelmezett természetes művelet, hogy szeretnénk kiválasztani egy bizonyos elemét. A legtöbb programozási nyelvben a stringek lista-szerű adatszerkezetek, így adott elem eléréséhez használhatjuk a [] operátort.

str.py
s = "Python"
+------+------+------+------+------+------+
| s[0] | s[1] | s[2] | s[3] | s[4] | s[5] |
+------+------+------+------+------+------+
| P    | y    | t    | h    | o    | n    |
+------+------+------+------+------+------+

Ne feledkezzünk meg róla, hogy Pythonban a indexelés mindig nullától kezdődik. A legtöbb modern programozási nyelv hasonló elven működik.

str.py
s = "Python"

print(s[0])
print(s[2])
P
t

Figyeljük meg, hogy s[len(s)] hibás!

str.py
s = "Python"

print(s[len(s)])
IndexError: string index out of range

Mivel Pythonban az indexelés nullától kezdődik, ha egy adatszerkezet mérete size := len(s), az indexek halmaza [0, ..., len(s)-1]

str.py
s = "Python"

print(len(s))

print(s[0])
print(s[1])
print(s[2])
print(s[3])
print(s[4])
print(s[5])
6
P
y
t
h
o
n

Stringek összefűzése

+ jel segítségével összefűzhetünk stringeket, és eredményképpen egy új string példányt kapunk.

str.py
a = "Hello "
b = "World!"

c = a + b

print(c)
Hello World!

Slicing

Stringeket fel tudunk szeletelni, és kiválasztani bizonyos szeleteket.

Szintaktika: [start:stop:step]

  • start - legelső kiválasztott elem indexe

  • stop - utolsó kiválasztott elem sorszáma, exkluzívan

  • step - hány lépésenként válasszuk ki az elemeket

str.py
s = "Ceteris Paribus"

print(s[3:12:2])

+------+------+------+------+-------+
| s[3] | s[5] | s[7] | s[9] | s[11] |
+------+------+------+------+-------+
| e    | i    |      | a    | i     |
+------+------+------+------+-------+

str.upper()

A stringben megtalálható karaktereket nagybetűssé alakítja.

str.py
s = "Ceteris Paribus"

print(s.upper())
CETERIS PARIBUS

str.lower()

str.py
s = "Ceteris Paribus"

print(s.lower())
ceteris paribus

str.strip()

Ez egy nagyon hasznos függvény, ha stringeket szeretnénk "tisztítani" például adatbeolvasás után.

str.py
s = "   Ceteris Paribus   "

print(s.strip())
Ceteris Paribus

str.Replace(str,str)

Karakterek kicserélése egy adott stringben. Paraméterek, hogy miket cserélünk ki mire.

str.py
s = "Cotoris Paribus"

print(s.replace("o", "e"))
Ceteris Parbius

A replace() gyakorlatban nagyon hasznos lehet, ha például csv fájlokban szeretnék az összes elválasztókaraktert kicserélni.

Escape Karakterek

Karakter
Jelentés

\"

ha a stringben " karaktert szeretnék használni, akkor a \" formát érdemes használni, különben szintaktikai hibát kapunk

\\

hasonlóan a "-hez

\n

új sor

\t

tabulátor

Ezeket a karaktereket akkor lehet használni általában, ha olyan karaktereket akarnánk megjeleníteni amik valamilyen problémát okoznának, vagy amúgy láthatatlan karakterek.

str.py
s_1 = '"Hello?"'
s_2 = "1\\2"
s_3 = "új \n sor"
s_4 = "tab\ttab"

print(s_1)
print(s_2)
print(s_3)
print(s_4)
"Hello?"
1\2
új
 sor
tab     tab

Ide kattintva olvashattok további string műveletekről.

help()

Ha bármelyik függvényről gyors információt szeretnétek szerezni, akkor a help() függvényt tudjátok használni.

help.py
help(str.join)

Last updated