Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Wiki Markup
Pythonissa voi - niinkuin useimmissa ohjelmointikielissä - määrittää omia funktioita. Funktiot ovat toiselta nimeltään aliohjelmia ja tämän nimen mukaisesti ne ovat eräänlaisia pääohjelman (tai pääfunktion) sisällä ajettavia pikkuohjelmia, jotka suorittavat jonkun oman tehtävän. Ohjelman jakaminen näin pienempiin suoritettaviin osiin helpottaa ohjelmointia monella tapaa.

...


 
Ensinnäkin, jos ohjelmassa tarvitan samaa toimintoa tai operaatiota monessa kohtaa, on yksinkertaista tehdä funktio toimintoa varten ja kutsua sitä aina kun tarvitaan sen sijaan, että kirjoittaisi saman koodin useaan paikkaan ohjelmaa. Ja jos toimintoa joutuu jostain syystä muuttamaan, muutos tarvitsee tehdä vain yhteen paikkaan kun käyttää funktioita.

...


 
Lisäksi, kun tekee yleishyödyllisiä funktioita ja kirjoittaa ne omaan moduuliin, niin ne saadaan helposti käyttöön toisessakin ohjelmassa moduulin lataamalla. Tätä ominaisuutta ollaankin hyödynnetty tähän asti käyttämällä mm. math moduulin funktioita.

...

Code Block

 
Pythonissa funktion luominen onnistuu avainsanalla def, jota seuraa funktion nimi ja sulkumerkit - rivi päättyy kaksoispisteeseen. Tämän jälkeen tulee lohko, joka sisältää koodin, jonka funktio suorittaa.
 
Tässä luodaan yksinkertainen funktio, jossa tulostetaan merkkijono. Funktiota kutsutaan pari kertaa ohjelman aikana.

{code}
def Message():
    print("Tulostus itse tehdystä funktiosta.")

print("Funktio luotiin juuri.")

Message()

print("Funktiota kutsuttiin juuri... vielä uudestaan.")

Message()

input("Paina Enter näppäintä lopettaaksesi...")
{code}
Samoinkuin moduuleihin, funktioille voi tehdä dokumentaatio merkkijonon. Sen saa näkyviin samalla tapaa eli \__doc_\_ muuttujan kautta käyttämällä pisteoperaattoria funktion nimeen (ilman sulkeita). Funktion dokumentaatio tulee myös näkyviin - pienessä keltaisessa laatikossa - kirjoitettaessa ensimmäisen sulkeen funktion nimen jälkeen. Tämä ei aina näy IDLE;n koodieditorissa, mutta interaktiivisessa ohjelmoinnissa kylläkin - niinkuin sisäänrakennettujen funktioiden tapauksessa on näkynyt.

...

Code Block

 
Kokeillaan määrittää funktio interaktiivisessa ohjelmoinnissa. Interaktiivinen ohjelmointi hyväksyy usean rivin funktion määrityksen kaltaisissa sisennetyissä koodirakenteissa - tässä lohko loppuu tyhjään riviin. Kirjoita seuraava funktio ja huomaa dokumentaation ilmestyminen sulkumerkkiä lisätessä - samoin funktiota print kirjoittaessa näkyy sen dokumentaatio.

{code}
>>> def Documentation():
        """Funktion dokumentaatio..."""
        print(4 * 3)
  
     
>>> Documentation()
12
>>>
{code}
Pythonin funktion määritämisestä kannattaa huomata myös se, että koska Python on tulkattava kieli funktiot luodaan ohjelman ajon aikana - joissain muissa kielissä tämä tapahtuu ohjelmaa käännettäessä. Tämän takia funktion määrittelyä voi sisällyttää esimerkiksi valinta rakenteisiin, jolloin ajon aikana ohjelmassa voidaan päättää miten jokin funktio luodaan.

...


 
Tämä on joskus hyödyllinen ominaisuus, koska aina ohjelmaa kirjoitettaessa ei voi olla varma mihin laitteistoon ja käyttöjärjestelmään ohjelma joutuu. Vaikka Python onkin varsin alusta riippumaton, joskus jotkin asiat täytyy tehdä eri tavalla.