Python 3. rész (Stringek)

Python logo

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)

Az oldal használatával elfogadja, hogy az sütiket használ További információ

A sütik használatát érdemes engedélyezni a böngészőben.
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Bezár