CHEM-A2600 - Kemiantekniikan ohjelmointikurssi, Luento-opetus, 5.9.2022-2.12.2022
This course space end date is set to 02.12.2022 Search Courses: CHEM-A2600
Python-oppimateriaali (CHEM-A2600)
Moduulit
Suuremmat ohjelmakokonaisuudet on aina parasta jakaa moduuleiksi. Moduulien avulla ohjelman rakenne pysyy paremmin hallinnassa ja moduuleja voi käyttää helposti uudelleen toisissa ohjelmissa.
Käytetään esimerkkinä moduulia ideaalikaasu, joka käytännössä olisi siis alla oleva koodi tallennettuna tiedostoon ideaalikaasu.py:
# Moduuli ideaalikaasu: # Apufunktioita ideaalikaasulle # pV = nRT # Moduuli määrittelee myös kaasuvakion R # Lähde NIST CODATA2018: https://physics.nist.gov/cgi-bin/cuu/Value?r R = 8.314462618 # J K^-1 mol^-1 # Moduuli määrittelee neljä funktiota def ratkaise_paine(V, n, T): return n * R * T / V def ratkaise_tilavuus(p, n, T): return n * R * T / p def ratkaise_ainemaara(p, V, T): return p * V / (R * T) def ratkaise_lampotila(p, V, n): return p * V / (n * R)
Luodaan moduulin ideaalikaasu.py kanssa samaan hakemistoon tiedosto testi.py, jossa hyödynnämme ideaalikaasu-moduulia import-avainsanan avulla:
# Tuodaan koko ideaalikaasu-moduuli ohjelman testi.py käyttöön import ideaalikaasu # ideaalikaasu-moduulin funktioiden eteen pitää lisätä viittaus "ideaalikaasu." p = ideaalikaasu.ratkaise_paine(0.002, 0.01, 300) # Parametrit V, n, T print(f"Paine: {p:.3f} Pa")
Tulostaa
Paine: 12471.694 Pa
Toinen tapa on tuoda ideaalikaasu-moduulista vain tietyt funktiot ja muuttujat testi.py-ohjelman käyttöön. Tähän käytetään käskyä from MODUULI import FUNKTIOT
# Tuodaan tietyt funktiot (ja/tai muuttujat) ohjelman testi.py käyttöön from ideaalikaasu import ratkaise_paine, ratkaise_tilavuus, R # Nyt meidän ei tarvitse käyttää "ideaalikaasu."-viittausta p = ratkaise_paine(0.002, 0.01, 300) # Parametrit V, n, T V = ratkaise_tilavuus(101325, 0.01, 300) # Parametrit p, n, T print(f"Paine: {p:.3f} Pa") print(f"Tilavuus: {V:.5f} m^3") print(f"Kaasuvakion R arvo on {R:.8f} J/mol K")
tulostaa
Paine: 12471.694 Pa Tilavuus: 0.00025 m^3 Kaasuvakion R arvo on 8.31446262 J/mol K
Vähänkin laajemissa ohjelmakokonaisuuksissa kannattaa miettiä ohjelman pilkkomista helpommin ylläpidettäviin ja uudelleenkäytettäviin moduuleihin.
import-käskyyn voi yhdistää as-avainsanan, jolloin ohjelmaan tuotavan moduulin nimeä voi vaikkapa lyhentää. Käsky on tällöin import MODUULI as LYHENNE:
import ideaalikaasu as ik
p = ik.ratkaise_paine(0.002, 0.01, 300) # Parametrit V, n, T