Tietokoneiden näyttöjä, joissa näkyy kuvaa automaatiolaboratorion laitteistosta. Monitoreiden takana näkyy sama laitteisto kuin kuvissa.

timohei.net / Opintojaksot / Soveltava ohjelmointi / Python-ohjelmointi /
Merkkijonojen käsittely

Lainausmerkit

Merkkijono voidaan määritellä kirjoittamalla se lainausmerkkeihin (") tai puolilainausmerkkeihin ('). Jos merkkijonoon itseensä halutaan lainausmerkkejä, merkitään lainausmerkin edelle kenoviiva (\):

>>> 'merkkijono'                # puolilainausmerkit
'merkkijono'
>>> 'Claude Monnet\'n maalaus'  # \' sijoittaa lainausmerkin merkkijonoon
"Claude Monnet'n maalaus"
>>> "Claude Monnet'n maalaus"   # Sama tulos lainausmerkeillä ja puolilainausmerkeillä
"Claude Monnet'n maalaus"
>>> '"Näin on!" hän myönsi.'
'"Näin on!" hän myönsi.'
>>> "\"Näin on!\" hän myönsi."
'"Näin on!" hän myönsi.'
>>> '"Monnet\'n maalaus" hän tiesi.'
'"Monnet\'n maalaus" hän tiesi.'

print-funktiolla tulostettuna edellä olevat esimerkit tulostuvat siistimmin ilman merkkijonoa merkitseviä puolilainausmerkkejä. print-funktio tulkitsee kenoviivalla merkkijonoon ympätyt merkit:

>>> print("\"Näin on!\" hän myönsi.")
"Näin on!" hän myönsi.
>>> esimerkkiteksti = 'Ensimmäinen rivi.\nToinen rivi.' # \n merkitsee rivinvaihtoa
>>> esimerkkiteksti   # Muuttujan arvo voidaan tulostaa pelkällä muuttujan nimellä,
'Ensimmäinen rivi.\nToinen rivi.'
>>> print(esimerkkiteksti) # mutta vasta print-funktio näyttää rivinvaihdon
Ensimmäinen rivi.
Toinen rivi.

Erikoismerkkien sisällyttäminen merkkijonoon

Lisäämällä merkkijonon eteen r-kirjain (raw), saadaan merkkijono tulostumaan sellaisenaan - kenoviivoilla ei silloin voi osoittaa erikoismerkkejä:

>>> print('Siirry kansioon .\newbie')  # \n tulkitaan rivinvaihdoksi
Siirry kansioon .
ewbie
>>> print(r'Siirry kansioon .\newbie') # r-kirjain merkkijonon edessä poistaa tulkinnan
Siirry kansioon .\newbie

Moniriviset merkkijonot

Monirivinen merkkijono saadaan aikaiseksi \n-merkinnän lisäksi myös kolmilla lainausmerkeillä """merkkijono"""" tai '''merkkijono'''. Merkkijonon sisällä olevat rivinvaihdot tulevat automaattisesti merkkijonoon mukaan, mutta se voidaan estää lisäämällä rivin loppuun kenoviiva:

>>> print("""\
... Usage: python pyssh.py [OPTIONS]
...      -h                        Display this help
...      -n hostname               Hostname to connect to
...      -a address                IP address to connect to\
... """)
Usage: python pyssh.py [OPTIONS]
     -h                        Display this help
     -n hostname               Hostname to connect to
     -a address                IP address to connect to

Merkkijonojen yhdistäminen ja monistaminen

Merkkijonoja voidaan yhdistää (concatenate) +-merkillä ja monistaa *-merkillä:

>>> print('Ke-ke' + 7 * '-ke-ke' + 4 * ' Rosberg')
Ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke-ke Rosberg Rosberg Rosberg Rosberg

Literaalit merkkijonot yhdistyvät automaattisesti:

>>> print('Py' 'thon')
Python
>>> merkkijono = ('Pitkän tekstin voi jakaa ohjelmassa usealle riville, '
...               'ja rivit yhdistyvät automaattisesti.')
>>> print(merkkijono)
Pitkän tekstin voi jakaa ohjelmassa usealle riville, ja rivit yhdistyvät automaattisesti.

Yksittäisten merkkien poimiminen merkkijonosta (tenttitärppi)

Merkkijonosta saa yksittäisen merkin indeksin avulla. Nolla ja positiiviset indeksin arvot osoittavat merkin sijaintia merkkijonon alusta päin, negatiiviset indeksin arvot merkkijonon lopusta päin:

>>> merkkijono = 'Python'
>>> print(merkkijono[0]) # Ensimmäinen merkki
P
>>> print(merkkijono[5]) # Kuudes merkki
n
>>> print(merkkijono[-1]) # Viimeinen merkki
n
>>> print(merkkijono[-6]) # Kuudes merkki lopusta päin
P

Merkkijonon viipalointi (tenttitärppi)

Merkkijonosta voidaan ottaa pätkä viipaloimalla (slicing), jolloin ilmoitetaan viipaleen ensimmäinen mukaan tuleva merkki ja ensimmäinen pois jätettävä merkki:

>>> print(merkkijono[0:2]) # Tulostaa kaksi ensimmäistä merkkiä (1. ja 2. merkki)
Py
>>> print(merkkijono[2:5]) # Tulostaa merkit kolmannesta viidenteen (indeksit 2-4)
tho
>>> print(merkkijono[:3]) # Tulostaa kolme ensimmäistä merkkiä
Pyt
>>> print(merkkijono[3:]) # Tulostaa loput merkit alkaen indeksistä 3 eli 4. merkistä alkaen
hon
>>> print(merkkijono[-4:]) # Tulostaa loput merkit alkaen neljänneksi viimeisestä
thon

Merkkijonon pituus

Merkkijonon pituus saadaan len-funktiolla:

>>> print(len('Ke-ke' + 7 * '-ke-ke' + 4 * ' Rosberg'))
79

Merkkijonojen metodit

Merkkijonoja voidaan käsitellä monipuolisesti metodeilla, joista esiteltiinkin aiemmin jo muutama esimerkki. Python 3:n merkkijono-metodien dokumentaatio kuvaa kaikki käytettävissä olevat metodit ja tarjoaa lisäksi linkkejä muihin Pythonin merkkijononkäsittelymenetelmiin.

Päivitetty 26.9.2023

<<  Edellinen
(7) Matemaattiset operaatiot
Sivu 8/17Seuraava >>
(9) Ehtolauseet, loogiset operaatiot
© Timo Heikkinen | timo piste heikkinen at oamk piste fi