...
Tässä
...
on
...
yksinkertainen
...
ohjelma,
...
joka
...
pyytää
...
käyttäjältä
...
nimeä
...
ja
...
tulostaa
...
viestin,
...
jossa
...
on
...
tervehdys
...
käyttäjälle.
...
Modulille
...
voi
...
antaa
...
minkä
...
tahansa
...
.py
...
päätteisen
...
nimen.
...
Tämä
...
ohjelma
...
näyttää
...
oikeastaan
...
sen,
...
mitä
...
kaikki
...
ohjelmat
...
tekevät:
...
ottaa
...
syötteen,
...
käsittelee
...
sitä
...
ja
...
tulostaa
...
tuloksen.
Code Block |
---|
} #Tassa on yksinkertainen ohjelma nimi = input("Anna nimesi: ") nimi = "Moi " + nimi print(nimi) {code} |
Jos
...
tämän
...
ohjelman
...
ajaa
...
IDLE;ssä
...
ohjelma
...
avautuu
...
samassa
...
ikkunassa
...
kuin
...
interaktiivisessa
...
ohjelmoinnissa.
...
Ohjelma
...
ajetaan,
...
kysyy
...
nimen
...
ja
...
sen
...
jälkeen
...
tulostaa
...
viestin.
...
Tämän
...
jälkeen
...
ikkunassa
...
voi
...
halutessaan
...
jatkaa
...
interaktiivista
...
ohjelmointia
...
ajetun
...
ohjelman
...
tulosteen
...
jäädessä
...
näkyviin.
...
Jos
...
ohjelma
...
ajetaan
...
komentorivissä,
...
ohjelma
...
kysyy
...
nimen
...
ja
...
ikkuna
...
sulkeutuu
...
välittömästi
...
-
...
joskin
...
siinä
...
saattaa
...
näkyä
...
viestikin
...
nopeana
...
vilauksena.
...
Tämä
...
johtuu
...
siitä,
...
että
...
ohjelma
...
loppuu
...
välittömästi
...
tulostettuaan
...
nimen
...
(rivi,
...
jossa
...
lukee
...
print)
...
ja
...
konsoli-ikkuna
...
suljetaan
...
heti
...
ohjelman
...
päätyttyä.
...
Tämmöisen
...
tahattoman
...
sulkeutumisen
...
voi
...
estää
...
lisäämällä
...
ohjelman
...
loppuun
...
koodi
...
rivin,
...
joka
...
pyytää
...
esim.
...
painamaan
...
enteriä
...
lopetusta
...
varten;
...
näin
...
ohjelman
...
viestin
...
voi
...
nähdä
...
selkeästi:
Code Block |
---|
} #Tassa on yksinkertainen ohjelma nimi = input("Anna nimesi: ") nimi = "Moi " + nimi print(nimi) input("Paina Enter-nappainta lopettaaksesi") #Ohjelma pysahtyy tahan {code} |
Miten
...
koodi
...
sitten
...
toimii?
...
Ensimmäinen
...
rivi,
...
joka
...
alkaa
...
risuaidalla,
...
ei
...
itseasiassa
...
ole
...
koodia
...
ollenkaan
...
vaan
...
kommentti
...
-
...
toinen
...
ohjelman
...
kommentti
...
on
...
viimeisen
...
rivin
...
lopussa.
...
Kommentit
...
eivät
...
ohjelman
...
suorituksen
...
kannalta
...
tee
...
mitään,
...
mutta
...
ne
...
toimivat
...
muistiinpanoina
...
ohjelmoijille;
...
niissä
...
voi
...
selittää
...
ohjelman
...
toimintaa
...
epäselvissä
...
kohdissa.
...
Kommentti
...
alkaa
...
risuaidasta
...
ja
...
jatkuu
...
rivin
...
loppuun
...
asti.
...
Ennen
...
risuaitaa
...
rivillä
...
oleva
...
koodi
...
suoritetaan
...
normaalisti
...
-
...
niinkuin
...
ohjelmassa
...
tapahtuu,
...
mutta
...
kommenttiin
...
sisältyvää
...
tekstiä
...
ei
...
-
...
vaikka
...
se
...
olisi
...
validia
...
Python
...
koodia.
...
Kommentin
...
avulla
...
voi
...
myös
...
kätevästi
...
poistaa
...
koodia
...
käytöstä
...
laittamalla
...
rivin
...
alkamaan
...
risuaidalla.
...
Varsinainen
...
ohjelma
...
on
...
neljällä
...
rivillä.
...
Siinä
...
käytetään
...
kahta
...
ns.
...
sisäänrakennettua
...
funktiota
...
syötteen
...
ottamiseen
...
ja
...
merkkijonon
...
tulostamiseen.
...
Teksti
...
nimi
...
toimii
...
tässä
...
muuttujana,
...
jossa
...
merkkijonoa
...
säilytetään.
...
Yhtäsuuruusmerkillä
...
tapahtuu
...
arvon
...
sijoittaminen
...
muuttujaan
...
ja
...
plusmerkillä
...
merkkijonojen
...
yhdistäminen.
...
Lainausmerkkien
...
sisään
...
kirjoitetut
...
tekstit
...
ovat
...
merkkijonoja.
...
Sanat
...
nimi,
...
...
ja
...
input
...
ovat
...
ns.
...
tunnistimia;
...
ne
...
toimivat
...
muuttujien,
...
funktioiden
...
jne.
...
niminä.
...
Tunnistimet
...
voivat
...
koostua
...
kirjaimista
...
tai
...
numeroista,
...
mutta
...
eivät
...
saa
...
alkaa
...
numeroilla.
...
Tunnistimen
...
kirjaimet
...
erottelevat
...
isot
...
ja
...
pienet
...
kirjaimet
...
siksi
...
esim.
...
...
ja
...
...
eivät
...
ole
...
sama
...
tunnistin.
...
Alaviivoja
...
voi
...
myös
...
käyttää,
...
mutta
...
esiintyessään
...
tunnisteen
...
alussa
...
tai
...
lopussa
...
ne
...
saattavat
...
kuvata
...
joitain
...
tärkeitä
...
sisäänrakennettuja
...
tunnistimia
...
joten
...
niiden
...
käyttöä
...
omissa
...
tunnistimissa.
...
Ensimmäisellä
...
rivillä
...
ohjelma
...
pyytää
...
käyttäjältä
...
nimeä
...
input-funktion
...
avulla.
...
Pyynnön
...
yhteydessä
...
tulostettava
...
merkkijono
...
on
...
sulkujen
...
välissä;
...
sulut
...
funktion
...
nimen
...
jälkeen
...
sisältävät
...
funktiolle
...
välitettävät
...
arvot.
...
Funktio
...
palauttaa
...
käyttäjän
...
kirjoittaman
...
tekstin
...
merkkijonona,
...
joka
...
sijoitetaan
...
muuttujaan
...
nimi.
...
Toisella
...
rivillä
...
yhdistetään
...
merkkijono
...
"Moi
...
"
...
muuttujan
...
nimi
...
sisältämään
...
merkkijonoon.
...
Tuloksena
...
on
...
uusi
...
merkkijono,
...
jossa
...
lukee
...
"Moi
...
"
...
ja
...
käyttäjän
...
antama
...
nimi.
...
Tämä
...
sijoitetaan
...
muuttujaan
...
nimi,
...
jolloin
...
sen
...
alkuperäinen
...
arvo
...
katoaa.
...
Kolmannella
...
rivillä
...
print-funktion
...
avulla
...
tulostetaan
...
nimi-muuttujan
...
sisältämän
...
merkkijonon.
...
Funktio
...
...
siis
...
eroaa
...
input-funktiosta
...
tässä
...
tapauksessa
...
vain
...
siinä,
...
että
...
...
ainoastaan
...
tulostaa
...
sille
...
välitetyn
...
merkkijonon,
...
mutta
...
input
...
jää
...
odottamaan
...
käyttäjältä
...
tekstiä.
...
Neljäs
...
-
...
ja
...
viimeinen
...
-
...
rivi
...
sisältää
...
jälleen
...
funktion
...
input.
...
Tällä
...
kertaa
...
funktion
...
input
...
palautamaa
...
merkkijonoa
...
ei
...
tallenneta
...
mihinkään,
...
vaan
...
ainoastaan
...
tulostetaan
...
sille
...
välitetty
...
merkkijono.
...
Tämän
...
takia
...
komentorivilläkin
...
ohjelma
...
jää
...
odottamaan
...
enterin
...
painamista
...
-
...
...
ei
...
toimisi
...
samoin
...
vaan
...
tulostettuaan
...
jatkaisi
...
lopettaen
...
ohjelman.
...
Tässä
...
toki
...
voisi
...
kirjoittaa
...
ohjelmalle
...
jotain
...
tekstiä,
...
mutta
...
sitä
...
ei
...
käytetä
...
mihinkään
...
ja
...
ohjelma
...
loppuu
...
joka
...
tapauksessa
...
tämän
...
rivin
...
jälkeen.