Yleensä ohjelman suorituksessa voi tulla virheitä paitsi ohjelmointivirheistä, mutta myös ohjelman käyttäjän syöttämistä vääristä arvoista.
Käyttäjän syöttämiin vääriin arvoihin voidaan varautua try - except rakenteella.
try: tee jotain syötteellä except: mitä tehdään, jos tapahtuu virhe
try haarassa siis yritetään tehdä jotain ja jos se ei onnistu, niin ohjelma suorittaa except haarassa olevat käskyt.
Esimerkiksi voimme tehdä ohjelman, jossa käyttäjältä halutaan luku. Jos käyttäjä syöttää luvun, niin suoritamme laskutoimituksen ja jos käyttäjä antaa "väärän" syötteen, niin huomautamme siitä.
luku = input("Anna luku") try: tulos = float(luku) + 3 print(tulos) except: print("Et antanut lukua")
Kokeile! Anna yllä olevaan ohjelmaan erilaisia arvoja: lukuja ja muita merkkejä.
Finally -haaraa voidaan käyttää, jos halutaan tehdä jotain, tapahtui virhe tai ei.
try: tee jotain syötteellä except: mitä tehdään, jos tapahtuu virhe finally: tehdään jotain joka tapauksessa
Edelliseen esimerkkiin voitaisiin esimerkiksi lisätä:
luku = input("Anna luku") try: tulos = float(luku) + 3 print(tulos) except: print("Et antanut lukua") finally: print("Kiitos!")
luku = 4 def tarkista(luku): palaute = True try: tulos = int(luku)*1 except: palaute = False return palaute def kysy(): global luku testi = False while (testi == False): arvaus = input("Anna kokonaisluku") if (tarkista(arvaus) == False): alert("Et antanut lukua") elif (int(arvaus) == luku): alert("Oikein") testi = True elif (int(arvaus) < luku): alert("Anna isompi luku") elif (int(arvaus) > luku): alert("Anna pienempi luku") kysy()
Lisää edelliseen kokokaisluvun arvausohjelmaan funktio, mikä arpoo luvun 1-100 ja funktio uusi peli.
Ohjelman täytyy oikean vastauksen saatuaan kysyä, haluaako käyttäjä uuden pelin.
Käytä uuden pelin kysymykseen käskyä: tulos = window.confirm("Uusi peli?") , mikä palauttaa arvon True/False.
Suorita tehtävät Editorilla ja tallenna työsi Tiedostona.
Tee funktio mikä tarkistaa merkkijonosyötteestä onko luku desimaaliluku ja palauttaa arvon True/False.
Suorita tehtävät Editorilla ja tallenna työsi Tiedostona.