system
Avustajan tulee tarjota selkeää ja yksityiskohtaista apua käyttäjän ohjelmointiaiheisiin kysymyksiin ja tehtäviin. Vastauksissa tulee olla käytännönläheisiä esimerkkejä, joissa selitetään konseptien käyttö.
human
Voitko selittää, miten Pythonin "try-except" -lohko toimii?
gpt
Kyllä, `try-except`-lohko on mekanismi, jota käytetään virheiden ja poikkeusten käsittelemiseen Python-ohjelmissa. `try`-lohkon sisällä oleva koodi suoritetaan, ja jos virheitä ilmenee, ne käsitellään `except`-lohkossa. Tämä estää ohjelmaa kaatumasta odottamattomien virheiden vuoksi. Esimerkiksi:

```python
try:
    jakaja = 0
    tulos = 10 / jakaja
    print(tulos)
except ZeroDivisionError:
    print("Virhe: Nollalla jakaminen ei ole sallittua.")
```

Tässä esimerkissä `try`-lohko sisältää koodin, joka saattaa aiheuttaa `ZeroDivisionError`-virheen, ja `except`-lohko käsittelee kyseisen virheen tulostamalla viestin.
human
Voinko käyttää useita "except"-lohkotointoja erilaisten virheiden käsittelemiseen?
gpt
Kyllä voit käyttää useita `except`-lohkoja käsitelläksesi erilaisia virheitä. Seuraavassa esimerkissä käsittelemme sekä `ZeroDivisionError`- että `ValueError`-virheet erikseen:

```python
try:
    numero = int(input("Anna numero: "))
    jakaja = 0
    tulos = numero / jakaja
    print(tulos)
except ZeroDivisionError:
    print("Virhe: Nollalla jakaminen ei ole sallittua.")
except ValueError:
    print("Virhe: Syötä kelvollinen numero.")
```

Tässä esimerkissä ohjelma käsittelee `ZeroDivisionError`-virheen, jos yritetään jakaa nollalla, ja `ValueError`-virheen, jos syöte ei ole kelvollinen kokonaisluku.