Python
Julkaistu vuonna 1990 ja sen nimi perustuu Monty Pythonin lentävään sirkukseen. Nimi Python koettiin tarpeeksi lyhyenä ja mysteerisenä, joten se päätettiin jättää siihen muotoon.
Python on monipuolinen, tulkattava ohjelmointikieli. Pythonia pidetään helppona oppia sen yksinkertaisen syntaksin ja korkean tason tietorakenteiden takia.
Luonteenomaista Pythonille pyrkimys selkeään ja luettavaan koodiin. Kauneuden ja yksinkertaisuuden tavoittelu onkin osa suunnittelufilosofiaa.
2000-luvun alussa syntyi alkuperäisestä Python kielestä jalostettu Python 2.0, joulukuussa 2008 julkaistiin Python 3.0
Kehittäjä Guido van Rossum on pysynyt kielen kehityksessä koko sen historian ajan keskeisessä roolissa.
Esimerkki yksinkertaisesta ohjelmasta
Code Block |
---|
Wiki Markup |
h1. Python Julkaistu vuonna 1990 ja sen nimi perustuu Monty Pythonin lentävään sirkukseen. Nimi Python koettiin tarpeeksi lyhyenä ja mysteerisenä, joten se päätettiin jättää siihen muotoon. Python on monipuolinen, tulkattava ohjelmointikieli. Pythonia pidetään helppona oppia sen yksinkertaisen syntaksin ja korkean tason tietorakenteiden takia. Luonteenomaista Pythonille pyrkimys selkeään ja luettavaan koodiin. Kauneuden ja yksinkertaisuuden tavoittelu onkin osa suunnittelufilosofiaa. 2000-luvun alussa syntyi alkuperäisestä Python kielestä jalostettu Python 2.0, joulukuussa 2008 julkaistiin Python 3.0 Kehittäjä Guido van Rossum on pysynyt kielen kehityksessä koko sen historian ajan keskeisessä roolissa. h2. Esimerkki yksinkertaisesta ohjelmasta {code} def main(): print "Hello, World!" main() {code} |
Tai
...
yksinkertaisemmin
...
(ilman
...
funktion
...
määrittelyä):
Code Block |
---|
}print "Hello, World!" {code} h2. Pythonin keskeiset piirteet Voi käyttää oliopohjaisena, proseduraalisena tai funktionaalisena ohjelmointikielenä Python on dynaamisesti tyypittävä ohjelmointikieli Tulkattava joko tulkki + komentotulkilla tai käytettävä työkalua (esim. Eclipse pydev-plugarilla) h2. Muuttujat {code |
Pythonin keskeiset piirteet
Voi käyttää oliopohjaisena, proseduraalisena tai funktionaalisena ohjelmointikielenä
Python on dynaamisesti tyypittävä ohjelmointikieli
Tulkattava joko tulkki + komentotulkilla tai käytettävä työkalua (esim. Eclipse pydev-plugarilla)
Muuttujat
Code Block |
---|
}nimi="Vesa" print"Hei,",nimi {code} |
Määrittää
...
muuttujalle
...
nimi
...
arvoksi
...
merkkijonon
...
"Vesa"
Code Block |
---|
}nimi=raw_input("Kerro nimesi:") print"Hei,",nimi {code} |
Tulostaa
...
"Kerro
...
nimesi"
...
ja
...
sijoittaa
...
syötteen
...
muuttujaan
...
Syötteen
...
ottaminen
...
input()
...
voi
...
ottaa
...
vain
...
kokonaislukuja
...
tai
...
liukulukuja,
...
merkkijonoja
...
vain
...
jos
...
se
...
on
...
sitaateissa
...
!
...
Etuna,
...
että
...
tallentaa
...
oikeantyyppisenä,
...
eikä
...
tyyppimuutos
...
tarpeen.
...
raw_input()
...
tallentaa
...
kaiken
...
merkkijonoina,
...
mutta
...
sitaatteja
...
ei
...
tarvita.
...
Merkkijonot
Sitaatit ja lainausmerkit samanarvoisia, mutta eivät toimi ristiin.
"kissa'
Saatetaan tarvita ohjausmerkkiä:
'vaa'alla'
...
→
...
'vaa\'alla'
...
Ohjausmerkit
Tulostus useammalle riville:
...
\n
Code Block |
---|
}print "Tama talle.\n Ja tama toiselle. {code} |
Tulostaa:
...
Tama
...
talle.
...
Ja
...
tama
...
toiselle.
...
Tyyppimuutokset
Sisäänrakennetuilla funktioilla kuten int(),
...
str(),
...
float()
...
>>>
...
int("32")
...
32
>>> int("Hello")
...
ValueError:
...
invalid
...
literal
...
for
...
int():
...
Hello
...
Muuttaa
...
siis
...
liukulukuja
...
kokonaisluvuksi,
...
mutta
...
ei
...
osaa
...
pyöristää
...
>>>
...
int(3.99999)
...
3
Float()
...
muuttaa
...
kokonaislukuja
...
ja
...
numeerisia
...
merkkijonoja
...
liukuluvuiksi:
...
>>>
...
float(32)
...
32.0
...
>>> float("3.14159")
...
3.14159
...
Str()
...
muuttaa
...
annettuja
...
syötteitä
...
merkkijonoiksi:
...
>>>
...
str(32)
...
'32'
...
>>> str(3.14149)
...
'3.14149'
Muotoiltu tulostus
Muuttujaa voidaan kutsua tulostukseen
Code Block |
---|
}} h3. Muotoiltu tulostus Muuttujaa voidaan kutsua tulostukseen {code}print "diipadaa", kissa, "jadijada" print "metsastys"+koira+"koulutus" {code} |
Esimerkissä
...
muuttuja
...
"kissa"
...
on
...
eroteltu
...
muusta
...
tulostuksesta
...
pilkuilla.
...
Pilkku
...
ohjaa
...
tulostusta
...
siten,
...
että
...
se
...
sijoittaa
...
välilyönnin
...
molemmin
...
puolin
...
muuttujaa.
...
Muutuja
...
"koira"
...
taas
...
on
...
sijoitettu
...
siten,
...
että
...
sen
...
ympärille
...
ei
...
tule
...
välejä,
...
jolloin
...
tulostus
...
on
...
yhdyssana.
Code Block |
---|
}print "kaapissa on %.3f olutta" % (maara) {code} |
Tässä
...
esimerkissä
...
muuttuja
...
on
...
sijoitettu
...
tulostuskäskyn
...
sijaan
...
ja
...
sille
...
on
...
annettu
...
määreeksi
...
kolme
...
desimaalia.
Ohjausrakenteet
If
Code Block |
---|
h2. Ohjausrakenteet h3. If {code}numero = 23 arvaus = input('Anna kokonaisluku : ') if arvaus == numero: print 'Arvasit oikein!' print "Peli päättyy tähän" elif arvaus < numero: print 'Luku on suurempi kuin arvaus' else: print 'Luku on pienempi kuin arvaus' {code} |
Pythonin
...
rakenne
...
"elif"
...
on
...
kätevä
...
käyttää,
...
mikäli
...
halutaan
...
tutkia
...
useiden
...
argumenttien
...
todenperäisyyttä.
...
Rakenne
...
vaatii
...
aina
...
kuitenkin
...
"else"-rakenteen
...
Toistorakenne
...
While
Code Block |
---|
}hevi = True oletus = "ei" while hevi: arvaus = input('onko hevi kaupallista? : ') if arvaus == oletus: print 'Hevi on edelleen true' print "Poppia ei tueta!" else: print 'Hevista tuli poppi-gagaa' hevi = False else: print "Hevi ei ole enaa True, vaan", hevi {code} |
Ylläolevassa
...
esimerkissä
...
on
...
ensin
...
määritelty
...
muuttujalle
...
"hevi"
...
arvo
...
True,
...
jota
...
käytetään
...
hyväksi
...
toistossa.
...
While-rakenne
...
toistaa
...
silmukkaa
...
kunnes
...
se
...
katkaistaan
...
ohjauskomennolla
...
tai
...
kunnes
...
muuttuja
...
"hevi":n
...
arvo
...
on
...
False
...
Toistorakenne
...
For
Code Block |
---|
}for i in range(1, 5): print i else: print 'Silmukka on päättynyt.‟ {code} h3. Ohjauskomennot {code} |
Ohjauskomennot
Code Block |
---|
eka = "rahat"'
toka = "henki"
while True:
vastaus = raw_input("Rahat tai henki!\n")
if vastaus == eka:
print "Sulla on enemmankin!"
continue
elif vastaus == toka:
Print "Bang!"
break
else:
print "Hopohopo"
pass
{code}
|
Ylläolevassa
...
esimerkissä
...
on
...
käytetty
...
ohjauskomentoja
...
"continue",
...
"break"
...
ja
...
"pass".
...
Varsinaisesti
...
esimerkki
...
ei
...
tarvitsi
...
ohjausrakenteitam
...
koska
...
kaikille
...
if-rakenteen
...
osioilla
...
on
...
argumentti.
...
Kuitenkin
...
"break"-komento
...
katkaisee
...
suorituksen,
...
jolloin
...
ei
...
tarvitse
...
määrittää
...
erikseen
...
määritellä
...
muuttujaa,
...
jonka
...
arvo
...
olisi
...
True.
...
"pass"-komento
...
on
...
kätevä,
...
mikäli
...
syntaksi
...
vaatii
...
argumentin.
Funtiot
Parametrit
Code Block |
---|
h2. Funtiot h3. Parametrit {code}def sanoTerve(nimi, osasto, vuosikurssi): print "Terve vaan "+nimi+"!" print "Ai, sä olet",+osasto+"," print "Ja että vuosi nro.",vuosikurssi sanoTerve("Vesku","Kone","4" ) {code} |
Ylläolevassa
...
esimerkissä
...
ensin
...
määritellään
...
funktio
...
"sanoTerve",
...
jonka
...
jälkeen
...
funktiolle
...
on
...
määritelty
...
parametrit
...
"nimi",
...
"osasto"
...
ja
...
"vuosikurssi".
...
Funktion
...
sisällä
...
kutsutaan
...
parametrejä
...
(muuttujia)
...
ja
...
sijoitetaan
...
tulostuskomennon
...
sisään.
...
Pääohjelmassa
...
kutsutaan
...
funtktio
...
ja
...
annetaan
...
parametreille
...
arvot.
...
Arvon
...
palautus
Code Block |
---|
}def pullot(): maara = float(raw_input("Paljonko sulla on tolkkeja?\n")) arvo = 0.15 rahat = maara * arvo return rahat def main(): print "Jummijammi!", rahat, "euroa, tallahan saa wappusimaa!" rahat = pullot() main() {code} |
Ohjelmassa
...
määritellään
...
funktiot
...
"pullot()"
...
ja
...
"main()"
...
(näillä
...
ei
...
ole
...
argumentteja
...
-
...
argumentit
...
eivät
...
ole
...
välttämättömiä
...
!).
...
Funtio
...
pullot
...
palauttaa
...
muuttujan
...
"rahat"
...
arvon.
...
Pääsuorituksen
...
tasolla
...
on
...
määritelty
...
muuttuja
...
"rahat"
...
siten,
...
että
...
se
...
suorittaa
...
funtion
...
"pullot()".
...
Tämän
...
jälkeen
...
palautettua
...
arvoa
...
käyttäen
...
kutsutaan
...
funtio
...
"main()",
...
jossa
...
käytetään
...
muuttujan
...
"rahat"
...
arvoa.
Luokat
Code Block |
---|
h2. Luokat {code}class Mies: etunimi = "Jamppa" sukunimi = "Perus" ika = 34 ammatti = "insinööri" def sano(self): Print "Hyvaa kohta on valmista" mies1 = Mies() Mies2 = Mies() mies1.etunimi = "Kalevi" mies1.sukunimi = "Karvajalka" mies1.ika = 42 mies1.ammatti = "pommikoneen rahastaja" mies1.sano_hei() print mies1.etunimi, mies1.sukunimi,"on" print mies1.ika, "vuotta vanha", mies1.ammatti print "ja sanoo", mies1.sano_hei() print mies2.etunimi, mies2.sukunimi, "on" print mies2.ika, "vuotta vanha", mies2.ammatti {code} h2. Lähteet |
Lähteet
Wikipedia:
...
Python
...
Luentokalvot:
...
TKK:n
...
kurssi
...
T-106.1208
...
Ohjelmoinnin
...
perusteet
...
Y
...
Kasurinen,
...
Jussi:
...
Python
...
-
...
ohjelmointiopas,
...
LUT
...
2008,
...
ISBN
...
978-952-214-634-2
...
Pollari-Malmi,
...
Kerttu:
...
T-106.1208
...
Kurssin
...
opetusmoniste,
...
korjattu
...
versio
...
10.2.2010
...