Ahogy az előző részben ígértem a stringekről külön írok pár szót.

A stringek nem megváltoztatható változók, tehát, ha egy stringnek értéket adtunk, nem lehet az értékét megváltoztatni, csak egy új értékadással felülírni.

Ennek a cikknek nem célja minden a stringeket érintő művelet ismertetése (rengeteg van belőlük), csak a gyakrabban használtakra térünk ki.

Kezdjük az elején

Az értékadás és az összeadás srtingek esetén is értelmezett:

a="Hallo"
b="World"
c=a+" "+b
print(c)
Hallo World

Ahogy a nem túl komplikált példaprogram mutatja, a stringek esetén az összeadás az összeadásban szereplő részstringek összefűzését jelenti.

Lehetőség van a string karaktereire való hivatkozásra:

a='Hallo World'
print(a[0])
H

print(a[1])
a

Ha a stringet tartalmazó változó után szögletes zárójelben megadjuk a betű sorszámát, megkapjuk az adott pozícióban álló betűt. A sorszámozás nullától indul, tehát az első karaktert a 0 indexel érjük el.

Természetesen lehetőség van a string egy szakaszának meghatározására is:

print(a[0:5])
Hallo

print(a[1:5])
allo

A szögletes zárójelben az első szám az első megjelenítendő karakter, a második az utolsó megjelenítendő karakter utáni (az ötös sorszámú karaktert már nem jeleníti meg)

Lehetőség van a string vége felől számolni a karaktereket, ilyenkor negatív számokat használunk. Az utolsó karakter jele a -1:

 print(a[-1])
d
print(a[-2])
l
print(a[0:-1])
Hallo Worl

print(a[-3:-1])
rl

lehetőség van a string elejére vagy végére való hivatkozásra:

print(a[6:])
World


print(a[1:])
allo World


print(a[:5])
Hallo


Mivel a string unmutable (nem megváltoztatható) a következő értékadás hibát eredményez:

a[0]=h

A feladat természetesen megoldható, de másképpen:

print('h'+a[1:])
hallo World

Lehetőség van arra, hogy egyes karaktereket kicseréljünk a stringben, az eredmény egy új string lesz.

print(a.replace('l','L'))
HaLLo WorLd

Na nézzünk egy gyakran használt példát:
Tételezzük fel, hogy érkezik egy árlista angol nyelvbeállításokkal. Ilyenkor tizedespontot használnak. A magyar szokás a tizedes vessző

sz='123.456'
print(sz.replace('.',','))
123,456

Gyakori feladat, hogy a kezdeti illetve záró szóközöket kell eltávolítani

a='     Hallo World   '
print(a.strip())
Hallo World

Természetesen lehetőség van csak a kezdeti szóközök eltávolítására

 a='     Hallo World   ' 
print(a.lstrip()+'#') 

Hallo World   #

Ha a záró szóközöket kell levágni

 a='     Hallo World   '  
print(a.rstrip()+'#')  

     Hallo World# 

Természetesen az lstrip és az rstrip használatával is el lehet érni azt, mint a strip-el

 a='     Hallo World   '   
a=a.rstrip()
print(a.lstrip()+'#')
Hallo World#  

Ez a feladat egy sorban is megoldható

 a='     Hallo World   '   
print(a.lstrip().rstrip()+'#')
Hallo World#

van olyan, hogy egy karakter előfordulását szeretnénk megszámolni

print(a.count('l'))
3

szükség lehet, az adott karakter első előfordulásának a pozíciójára

a='Hallo World'
print(a.index('l'))
2
print(a[ a.index('l') ])

A string hosszát (karakterszámát) is meg lehet határozni. Mivel a len() függvény a string hosszát adja meg, az utolsó karakter indexe len(a)-1

print(len(a))
11
print(a[len(a)-1])
d
print(a[len(a)])
Hibaüzenet ad, mert a karakterek indexe 0-tól indul, ezért a len(a) az utolsó karakter utánra mutat.

Ha egy stringgel egy sorban több műveletet végzünk, akkor azok balról jobbra hajtódnak végre.

print(a.replace(' ',',').index(','))
5

A következő rész további változótípusokkal foglalkozik

Kapcsolódó szócikkek

Python bevezető
Python típusok
Python telepítése (Youtube)