CHEM-A2600 - Kemiantekniikan ohjelmointikurssi, Luento-opetus, 30.5.2022-28.8.2022
Kurssiasetusten perusteella kurssi on päättynyt 28.08.2022 Etsi kursseja: CHEM-A2600
Python-oppimateriaali (CHEM-A2600)
CodeRunnerin testien hyödyntäminen Spyderissä
CodeRunner-ohjelmointitehtävät sisältävät erilaisia testejä, joilla kirjoittamasi ohjelma tarkastetaan. Voit myös käyttää näitä testejä Spyderissä (tai muussa kehitysympäristössä). Tämä nopeuttaa monesti virheiden etsimistä. Näin voit myös välttää miinuspisteet, joita kertyy liian monesta palautusyrityksestä.
Esimerkki
Kuvitellaan, että tehtävänä on kirjoittaa seuraavanlainen funktio:
Kirjoita funktio tiheys, joka saa parametreinä yhdisteen massan (g) ja tilavuuden (cm^3). Funktio palauttaa yhdisteen tiheyden (g/cm^3). Jos funktiota kutsutaan epäfysikaalisella parametrilla, sen pitää palauttaa arvo -1.
Kirjoitetaan määritelmän täyttävä funktio:
def tiheys(massa, tilavuus): if massa > 0 and tilavuus > 0: return massa/tilavuus else: return -1
Seuraavaksi katsotaan CodeRunnerin esimerkkitestit (Test) ja niitä vastaavat tulokset (Result):
Test | Result |
---|---|
print(round(tiheys(5.0, 24.0), 2)) | 0.21 |
print(tiheys(-1.0, 10)) | -1 |
print(tiheys(2, 0)) | -1 |
Nyt voit käytännössä ajaa nämä testit Spyderissä omalle koodillesi kopioimalla ylläolevat testit tiheys-funktion toteutuksen alle ja ajamalla koodin:
def tiheys(massa, tilavuus): if massa > 0 and tilavuus > 0: return massa/tilavuus else: return -1 # CodeRunner-testit: print(round(tiheys(5.0, 24.0), 2)) print(tiheys(-1.0, 10)) print(tiheys(2, 0))
Tällöin Spyderin konsoliin tulostuu:
0.21 -1 -1
Nämä arvot vastaavat Result-sarakkeen tuloksia, joten funktio on toteutettu oikein. Funktion voi nyt kopioida CodeRunneriin ja tarkistaa.
Yhteenveto
Varsinkin monimutkaisemmissa tehtävissä, joissa virheellisistä palautuksista tulee miinuspisteitä, on suositeltavaa ajaa CodeRunnerin esimerkkitestit ensin Spyderissä ja vasta sitten palauttaa koodi CodeRunneriin. Palautuksen yhteydessä esiin tulee tavallisesti lisää CodeRunner-testejä, joista osa voi epäonnistua, mutta sitten voit kopioida epäonnistuneet testit Spyderiin ja alkaa testata koodiasi näitä testejä vasten.