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

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

...

Linkit

Python kotisivu
Kasurinen, Jussi: Python - ohjelmointiopas