Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

Merkkijonot

...

toimivat

...

tekstiä

...

säilyttävinä

...

muuttujina.

...

Joissain

...

ohjelmointi

...

kielissä

...

on

...

erikseen

...

muuttuja,

...

joka

...

kuvaa

...

yksittäistä

...

merkkiä,

...

mutta

...

Pythonissa

...

näin

...

ei

...

ole.

...

Merkkijonojen

...

toimintoja

...

voi

...

kätevästi

...

kokeilla

...

interaktiivisessa

...

ohjelmoinnissa.

...

Ensinnäkin,

...

kuten

...

aiemmin

...

puhuttiin,

...

merkkijono

...

tehdään

...

kirjoittamalla

...

teksti

...

lainausmerkkien

...

sisään,

...

mutta

...

siinä

...

on

...

muutamia

...

selvitystä

...

vaativia

...

yksityiskohtia.

...

Ensinnäkin

...

lainausmerkkiä

...

ei

...

voi

...

kirjoittaa

...

merkkijonon

...

sisään

...

sellaisenaan,

...

koska

...

se

...

käsiteltäisiin

...

merkkijonon

...

lopettavana

...

merkkinä

...

jolloin

...

aiheutuu

...

virhe.

{
Code Block
}
>>> "merkki " aiheuttaa ongelmia"
SyntaxError: invalid  syntax
>>>
{code}

Tätä

...

ja

...

muita

...

ertyiskohtelua

...

vaativa

...

merkkejä

...

varten

...

merkkijonoja

...

kirjoitettaessa

...

kenoviivalla,

...

jonka

...

avulla

...

kyseiset

...

merkit

...

saadaan

...

merkittyä.

...

Esimerkiksi

...

lainausmerkki

...

saadaan

...

kirjoittamalla

...

peräkkäin

...

kenoviiva

...

ja

...

lainausmerkki.

{
Code Block
}
>>> "merkki \" ei enaan aiheuta ongelmia"
'merkki " ei  enaan aiheuta ongelmia'
>>>
{code}

Kenoviivan

...

avulla

...

saadaan

...

myös

...

kirjoitettua

...

ns.

...

näkymättömät

...

merkit

...

kuten

...

sarkainmerkki

...

merkkiyhdistelmällä

...

\t

...

ja

...

rivinvaihto

...

\n.

...

Välilyönti

...

myös

...

kuuluu

...

näkymättömiin

...

merkkeihin,

...

mutta

...

sitä

...

varten

...

ei

...

tarvita

...

erikoismerkintöjä.

...

Kenoviiva

...

merkitään

...

taas

...

kirjoittamalla

...

merkkijonoon

...

kaksi

...

kenoviivaa

...

peräkkäin.

...

Lainausmerkkien

...

lisäksi

...

merkkijonon

...

alussa

...

ja

...

lopussa

...

voi

...

käyttää

...

heittomerkkejä.

...

Heittomerkillä

...

tehdyissä

...

merkkijonoissa

...

täytyy

...

tosin

...

käyttää

...

kenoviivaa

...

taas

...

ennen

...

jokaista

...

heittomerkkiä.

...

Tässä

...

on

...

se

...

erikoinen

...

ominaisuus,

...

että

...

heittomerkillä

...

tehtyjen

...

merkkijonojen

...

sisään

...

voi

...

kirjoittaa

...

lainausmerkkejä

...

sellaisenaan

...

ja

...

sama

...

toimii

...

myös

...

päin

...

vastoin.

{
Code Block
}
>>> "Lainausmerkit ja ' "
"Lainausmerkit ja ' "
>>>
>>> 'Heittomerkit ja " '
'Heittomerkit ja " '
>>>
{code}

On

...

vielä

...

kolmas

...

tapa

...

tehdä

...

merkkijonoja.

...

Kirjoittamalla

...

merkkijonon

...

aluksi

...

ja

...

lopuksi

...

kolme

...

lainaus-tai

...

heittomerkkiä,

...

merkkijonoa

...

voi

...

jatkaa

...

usealle

...

riville.

...

Lisäksi

...

tabulaattoria

...

ja

...

rivinvaihtoakaan

...

ei

...

tarvi

...

ilmaista

...

kenoviivan

...

avulla.

...

Merkkijonoja

...

voi

...

muokata

...

yhdistämällä,

...

samoinkuin

...

esimerkki

...

ohjelmassa

...

tehtiin.

...

Tämä

...

onnistuu

...

plus

...

merkillä.

...

Plusmerkit

...

kirjoitetaan

...

yhdistettävien

...

merkkijonojen

...

väliin

...

ja

...

yhdistettäviä

...

merkkijonoja

...

voi

...

olla

...

ueampiakin.

{
Code Block
}
>>> "Kaksi " + "merkkijonoa."
'Kaksi merkkijonoa.'
>>>
>>> "Yhdistetaan " + "kolme " +  "merkkijonoa."
'Yhdistetaan kolme merkkijonoa.'
>>>
{code}

Merkkijonoja

...

voi

...

myös

...

monistaa

...

kertomerkillä.

...

Tällöin

...

monistettava

...

merkkijono

...

tulee

...

kertomerkin

...

vasemmalle

...

puolelle

...

ja

...

oikealle

...

puolelle

...

tulee

...

kokonaisluku,

...

joka

...

kertoo

...

kuinka

...

paljon

...

merkkijonoa

...

monistetaan.

...

Merkkijonojen

...

yhdistäminen

...

ja

...

monistaminen

...

onnistuu

...

myös

...

samalla

...

rivillä

...

-

...

plus

...

-

...

ja

...

kertomerkit

...

suoritetaan

...

samassa

...

järjestyksessä

...

kuin

...

matematiikassa.

{
Code Block
}
>>> "mita " * 7
'mita mita mita mita mita mita mita '
>>>
>>> "mita" + "?" * 10
'mita??????????'
>>>
{code}

Merkkijonoon

...

voi

...

myös

...

sijoittaa

...

muiden

...

merkkijonoja

...

(ja

...

muidenkin

...

muuttujien

...

arvoja)

...

ns.

...

muotoilu

...

operaattorilla,

...

jona

...

toimii

...

prosenttimerkki.

...

Tällöin

...

merkkijonon

...

kohdassa,

...

johon

...

arvo

...

halutaan

...

sijoittaa,

...

tulee

...

lukea

...

%s.

...

Merkkijono

...

tulee

...

muotoilu

...

operaattorin

...

vasemmalle

...

puolelle

...

ja

...

sijoitettava

...

arvo

...

oikealle.

{
Code Block
}
>>> "Sijoitus %s toiminnassa" % "merkki"
'Sijoitus  merkki toiminnassa'
>>>
{code}

Merkkijonosta

...

voi

...

myös

...

erotella

...

pienempiä

...

osia

...

indeksoinnin

...

ja

...

leikkauksen

...

avulla

...

-

...

molempien

...

merkitsemisessä

...

käytetään

...

hakasulkuja.

...

Indeksoinnissa

...

hakasulut

...

kirjoitetaan

...

merkkijonon

...

jälkeen

...

ja

...

hakasulkujen

...

sisään

...

kirjoitetaan

...

sen

...

merkin

...

indeksi,

...

joka

...

merkkijonosta

...

halutaan

...

(indeksi

...

nolla

...

on

...

merkkijonon

...

ensimmäinen

...

merkki).

...

Negatiivinen

...

luku

...

taas

...

kertoo

...

monesko

...

merkki

...

merkkijonon

...

lopusta

...

laskettuna

...

valitaan

...

(-1

...

on

...

viimeinen

...

merkki).

{
Code Block
}
>>> "abcdefg"[3]
'd'
>>>
>>> "abcdefg"[-3]
'e'
>>>
{code}

Leikkauksella

...

merkkijonosta

...

otetaan

...

useampi

...

merkki

...

kirjoittamalla

...

hakasulkeisiin

...

kaksoispiste

...

ja

...

sen

...

molemmin

...

puolin

...

rajat

...

kokonaisluvuin

...

(positiivisin

...

tai

...

negatiivisin),

...

joiden

...

välistä

...

merkit

...

valitaan.

...

Viimeisen

...

indeksin

...

osoittama

...

merkkä

...

ei

...

lukeudu

...

leikattavaan

...

pätkään.

...

Lisäksi

...

jättämällä

...

leikkauksen

...

alkupään

...

määrittämättä

...

leikkaus

...

kohdistuu

...

automaattisesti

...

merkkijonon

...

alkuun

...

ja

...

jättämällä

...

loppupään

...

määrittämättä

...

leikkaus

...

kohdistuu

...

automaattisesti

...

merkkijonon

...

loppuun

...

-

...

näin

...

pelkkä

...

kaksoispiste

...

palauttaa

...

koko

...

alkuperäisen

...

merkkijonon.

{
Code Block
}
>>> "abcdefg"[0:3]
'abc'
>>>  "abcdefg"[3:-3]
'd'
>>> "abcdefg"[2:-2]
'cde'
>>> "abcdefg"[:-2]
'abcde'
>>> "abcdefg"[2:]
'cdefg'
>>>  "abcdefg"[:]
'abcdefg'
>>>
{code}

Jos

...

tarvitaan

...

vielä

...

tarkempaa

...

merkkijonojen

...

käsittelyä,

...

niin

...

voi

...

käyttää

...

kahta

...

kaksoispistettä,

...

jolloin

...

voi

...

määrittää

...

välin,

...

joka

...

jää

...

valittavien

...

merkkien

...

väliin.

...

Tässä

...

leikkauksen

...

alku

...

kirjoitetaan

...

ennen

...

ensimmäistä

...

kaksoispistettä,

...

loppu

...

kirjoitetaan

...

kaksoispisteiden

...

väliin

...

ja

...

leikkausväli

...

toisen

...

kaksoispisteen

...

jälkeen.

{
Code Block
}
>>> "abcdefg"[1:-1:2]
'bdf'
>>>
{code}

Lisäksi

...

merkkijonon

...

(ja

...

muidenkin

...

arvojen)

...

tallentaminen

...

muuttujaan

...

onnistuu

...

yhtäsuuruusmerkillä

...

=.

...

Vasemmalle

...

tulee

...

muuttujaa

...

merkitsevä

...

tunnistin

...

ja

...

oikealle

...

arvo,

...

joka

...

siihen

...

halutaan

...

sijoittaa.

...

Operaatiot

...

toimivat

...

samalla

...

lailla

...

tehtiin

...

ne

...

sitten

...

suoraan

...

merkkijono

...

ilmaisulle

...

tai

...

muuttujaan

...

talennetulle

...

merkkijonolle.

{
Code Block
}
>>> "abcdefg"[2]
'c'
>>> s = "abcdefg"
>>> s[2]
'c'
>>>
{code}