Python-ohjelmoinnin peruskurssi Helsingin avoimessa yliopistossa on takanapäin, ja ajattelin kirjoitella muutamia tietoiskun kaltaisia artikkeleja Python-ohjelmointikielestä itseäni ja asiasta kiinnostuneita varten. 😀 Tämä on ensimmäinen, ja käsittelee tulostuksen muotoilun perusjuttuja.
Pythonissa on eri tapoja, joilla tulostuksen ulkonäköä voi muotoilla. Riippuen tapauksesta voi valita itselleen mieluisimman tai helpoimman.
Yhden rivin tulostus
Tämä on se kaikkein helpoin tapaus, jossa ei tarvita mitään sen kummempaa, ja monissa tapauksissa tämä riittää, eli ei tarvita kuin print-komento.
print("Huomenta!")
Huomenta!
print("Huomenta! Mitä kuuluu? Kuinka voit tänään?")
Huomenta! Mitä kuuluu? Kuinka voit tänään?
Kahden tai useamman rivin tulostus
Tähän on kaksikin mahdollisuutta. Ensimmäinen: print-komennot voi laittaa alekkain, jolloin jokainen rivi tulostuu omalle rivilleen. Tyhjän rivin voi tulostaa komennolla print().
print("Huomenta!")
print("Mitä kuuluu?")
print()
print("Ihan hyvää.")
Huomenta!
Mitä kuuluu?
Ihan hyvää.
Toisessa vaihtoehdossa voidaan käyttää yhtä print-komentoa ja ilmaista rivinvaihdot \n-merkillä ilman välilyöntejä. Ja jos haluaa tyhjän rivin väliin, niin \n\n tuo tähän ratkaisun.
print("Huomenta!\nMitä kuuluu?\nKuinka voit tänään?")
Huomenta!
Mitä kuuluu?
Kuinka voit tänään?
Tulostus muuttujien kanssa
Pelkän muuttujan tulostaminen käy myös helposti.
nimi = "Seija"
print(nimi)
Seija
Kun tulostuksessa on muuttujia ja merkkijonoja, tarvitaan muita ratkaisuja.
Tulostus pilkkujen kanssa
Muuttujat ja merkkijonot voidaan tulostaa samalla print-komennolla, kun ne yhdistetään pilkulla.
nimi = "Helmi"
print(nimi, "jäi eilen eläkkeelle.")
Helmi jäi eilen eläkkeelle.
nimi = "Hannu"
ika = 60
print(nimi, "täyttää maanantaina", ika, "vuotta.")
Hannu täyttää maanantaina 60 vuotta.
Pilkku luo automaattisesti välilyönnin muuttujan ja merkkijonon väliin, joten koodaajan ei tarvitse välilyöntiä napauttaa, ellei halua tehdä koodista luettavampaa, kuten yllä. Sellaisissa tilanteissa, joissa muuttuja halutaan suomen kielioppisääntöjen mukaan liittää ilman välilyöntiä merkkijonoon, pilkku-muotoilu ei käy, kuten tilanteessa 60-vuotias, jossa 60 olisi muuttujan arvo.
Tulostus käyttäen merkkiä +
Kun tulostuksessa yhdistetään muuttujia ja merkkijonoja +-merkillä, täytyy koodaajan muistaa lisätä välilyönnit lainausmerkkien sisään, joko alkuun tai loppuun tai molempiin, riippuen tilanteesta. +-merkki ei luo välejä, kuten pilkku tekee. Alla olevasta esimerkistä näkee, milloin koodaajan täytyy laittaa välilyönti ja milloin se on syytä jättää pois. Esimerkiksi ”n isoäiti”-kohdassa ennen n-kirjainta ei laiteta välilyöntiä, koska sillä ilmaistaan nimi1:n eli Seija-merkkijonon genetiivimuotoa.
nimi1 = "Seija"
nimi2 = "Helmi"
print(nimi1 + " pääsi yliopistoon opiskelemaan. " + nimi2 + " on " + nimi1 + "n isoäiti.")
Seija pääsi yliopistoon opiskelemaan. Helmi on Seijan isoäiti.
+-merkin käytössä on se ongelma tai muistettava asia, että jos muuttujan arvo on jokin muu kuin merkkijono, kuten esimerkiksi kokonaisluku tai liukuluku, tämä täytyy muuttaa merkkijonoksi: str(muuttuja).
nimi = "Veikko"
ika = 73
print(nimi + " on " + str(ika) + "-vuotias.")
Veikko on 73-vuotias.
Tulostus f-merkkijonolla
Äkkiseltään f-muotoilu saattaa näyttää kaikista hankalimmalta tulostuksen muotoilulta, mutta loppupeleissä se ehkä onkin muuttujien, numeroiden ja merkkijonojen yhteistulostuksissa kaikkein vaivattomin, kunhan on ensin opetellut aaltosulkujen käytön. f-muotoilussa muuttuja laitetaan aaltosulkujen sisään {muuttuja} ja koko tulostettava rötlä lainausmerkkien väliin ja ensimmäisen lainausmerkin eteen kirjan f. Muuten voi kirjoittaa ihan normaalisti napauttaen normaalit välilyönnit tarvittaessa.
nimi1 = "Seija"
nimi2 = "Helmi"
print(f"{nimi1} pääsi yliopistoon opiskelemaan. {nimi2} on {nimi1}n isoäiti.")
Seija pääsi yliopistoon opiskelemaan. Helmi on Seijan isoäiti.
Tässäkin tulostuksen muodossa on pieni mutta, kuinkas muuten. 😉 Joissakin tilanteissa voi olla, että muuttujassa on lainausmerkit; tällöin tulee sisäkkäisten lainausmerkkien ongelma eikä tulostus toimi. Tähän on helppo ratkaisu: laittaa ne sisemmät lainausmerkit yksinkertaisina ’ ’, niin ongelma poistuu.
f-muotoilussa voidaan tulostusta muotoilla myös monipuolisemmin; sillä voi tehdä vaikkapa taulukoiden näköisiä ratkaisuja, mutta se on sitten jo toisen artikkelin aihe.
Pieni erikoistapaus liukuluvun muotoilusta tähän loppuun. Jos haluamme tulostaa liukuluvun hieman lyhyemmällä rimpsulla, voimme käyttää f-muotoilua.
pii = 3.14159265358979323846
luku = 55.1234567891
print(f"Pii on {pii:.4f} ja luku on {luku:.2f}.")
Pii on 3.1416 ja luku on 55.12.
Yllä olevassa esimerkissä, kohdissa .2f ja .4f, kirjain f tarkoittaa liukulukua (float). Ja kuten näkyy, piin tulostuksessa tapahtui myös pyöristys ylöspäin.
Tässä ensimmäinen Python-pläjäys. Jos jäit jotain kaipaamaan tai jotain virheellistä olen höpötellyt, niin pistä viestiä.