CHEM-A2600 - Kemiantekniikan ohjelmointikurssi, 03.06.2019-31.08.2019
Kurssiasetusten perusteella kurssi on päättynyt 31.08.2019 Etsi kursseja: CHEM-A2600
Python-oppimateriaali (CHEM-A2600)
Lyhyt opas Python-ohjelmointiin
Muotoiltu tulostaminen str.format-funktiolla
Tähän asti olemme käyttäneet print-funktiota tulostamiseen varsin suoraviivaisesti:
alkuaine = "C" atomipaino = 12.011 print("Alkuaineen", alkuaine, "atomipaino on", atomipaino)
tulostaa
Alkuaineen C atomipaino on 12.011
Pythonissa on kuitenkin käytettävissä myös erittäin monipuolinen str.format-funktio, jolla voi muotoilla merkkijonon:
alkuaine = "C" atomipaino = 12.011 print("Alkuaineen {} atomipaino on {}".format(alkuaine, atomipaino))
tulostaa
Alkuaineen C atomipaino on 12.011
Merkkijonon "Alkuaineen {} atomipaino on {}" kaarisulut korvautuivat siis format-funktion parametreilla alkuaine ja atomipaino.
{}-kentän muotoilu
str.format-funktion {}-kenttää voi muotoilla lukuisilla eri tavoilla. Sen tyypillisin käyttötapa on {:<leveys>.<tarkkuus><tyyppi>}. Muutamia esimerkkejä:
- liukuluku (f), 6 merkkiä leveä kenttä, pyöristettynä nollan desimaalin tarkkuuteen: {:6.0f}
- liukuluku (f) pyöristettynä kolmen desimaalin tarkkuuteen, automaattinen kentän leveys: {:.3f}
- kokonaisluku (d), automaattinen kentän leveys
- kokonaisluku (d), 5 merkkiä leveä kenttä: {:5d}
Esimerkki 1:
T = 300 # K p = 1.12345 # atm print("Olosuhteet ovat: {:d} K, {:.3f} atm".format(T, p))
tulostaa
Olosuhteet ovat: 300 K, 1.123 atm
Esimerkki 2:
n = 0.25 # mol V = 0.00456 # m^3 T = 298.15 # K R = 8.3145 # J/(mol K) p = n * R * T / V # J/m^3 print("Kun n = {:3.2f} mol, V = {:7.5f} m^3, T = {} K, on paine p = {:6.0f} J/m^3".format(n, V, T, p))
tulostaa
Kun n = 0.25 mol, V = 0.00456 m^3, T = 298.15 K, on paine p = 135908 J/m^3
Vaikka str.format-funktion kokoaminen voi ensi alkuun vaikuttaa työläältä, on se todella paljon kätevämpää kuin tulostuksen hoitaminen print- ja round-funktioiden avulla.
Käytä lukuarvojen tulostamiseen tästä lähtien str.format-funktiota aina kun mahdollista.
str.format-funktion dokumentaatio löytyy osoitteesta https://docs.python.org/3/library/string.html#formatstrings. Dokumentaatio on hieman abstrakti, mutta sisältää myös esimerkkejä.
Muita str.format-funktion käyttötapoja
Ennen kaarisulkujen sisältämän muotoilukentän kaksoispistettä voi käyttää tunnistetta, joka yhdistää kentän str.format-funktion parametriin:
print("Olosuhteet ovat: {T_K:d} K, {p_atm:.3f} atm".format(T_K=300, p_atm=1.12345))
tulostaa
Olosuhteet ovat: 300 K, 1.123 atm
str.format-funktion argumentteja voi toistaa helposti käyttämällä kaarisulkujen sisällä tunnisteita:
alkuaine = "C" atomipaino = 12.011 naapuri = "N" print("Alkuaineen {aine} atomipaino on {paino:.3f}. " "Alkuaineen {aine} naapuri on {aine2}".format(aine=alkuaine, paino=atomipaino, aine2=naapuri))
tulostaa
Alkuaineen C atomipaino on 12.011. Alkuaineen C naapuri on N
Huomaa myös esimerkistä, miten pitkää merkkijonoa voi jatkaa koodissa toiselle riville yksinkertaisesti sulkemalla lainausmerkit ja aloittamalla uudet seuraavalla rivillä.