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.

#Tassa on yksinkertainen ohjelma

nimi = input("Anna nimesi: ")
nimi = "Moi " + nimi
print(nimi)

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:

#Tassa on yksinkertainen ohjelma

nimi = input("Anna nimesi: ")
nimi = "Moi " + nimi
print(nimi)
input("Paina Enter-nappainta lopettaaksesi")    #Ohjelma pysahtyy tahan

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, print 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. Print ja print 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 print siis eroaa input-funktiosta tässä tapauksessa vain siinä, että print 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 - print 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.

  • No labels
You must log in to comment.