Exception handling (tasks) - herburt30/info GitHub Wiki

I. Užduotis: Padalink du skaičius --- Parašyk programą, kuri paprašo vartotojo įvesti du skaičius ir juos padalina. Apdorok padalijimą iš nulio.

Sprendimas =>

try:

a = float(input("Įveskite pirmą skaičių: "))

b = float(input("Įveskite antrą skaičių: "))

result = a / b

print(f"Rezultatas: {result}")

except ZeroDivisionError:

print("Klaida: dalyba iš nulio negalima.")

II. Užduotis: Konvertuok į skaičių --- Parašyk programą, kuri bando konvertuoti vartotojo įvestį į sveikąjį skaičių. Apdorok neteisingą įvedimą.

Sprendimas =>

try: number = int(input("Įveskite sveikąjį skaičių: "))

print(f"Įvestas skaičius: {number}")

except ValueError:

print("Klaida: tai nėra sveikasis skaičius.")

III. Užduotis: Dirbk su sąrašu --- Turimas sąrašas [10, 20, 30]. Parašyk programą, kuri leidžia vartotojui įvesti indeksą ir grąžina reikšmę. Apsaugok nuo neteisingo indekso.

Sprendimas =>

numbers = [10, 20, 30]

try:

index = int(input("Įveskite indekso numerį (0–2): "))

print(f"Reikšmė: {numbers[index]}")

except IndexError:

print("Klaida: toks indeksas neegzistuoja.")

except ValueError:

print("Klaida: įvestas ne sveikasis skaičius.")

IV. Užduotis: Apskaičiuok kvadratinę šaknį

--- Parašyk programą, kuri grąžina kvadratinę šaknį iš įvesto skaičiaus. Tvarkyk atvejus, kai skaičius yra neigiamas arba įvedimas neteisingas.

Sprendimas =>

import math

try:

num = float(input("Įveskite skaičių: "))

if num < 0:

    raise ValueError("Neigiamas skaičius neturi realios kvadratinės šaknies.")

print(f"Kvadratinė šaknis: {math.sqrt(num)}")

except ValueError as e:

print(f"Klaida: {e}")

V. Užduotis: Failo atidarymas --- Parašyk programą, kuri bando atidaryti failą duomenys.txt skaitymui. Tvarkyk atvejį, jei failo nėra.

Sprendimas =>

try:

with open("duomenys.txt", "r") as file:

    content = file.read()

    print("Failo turinys:")

    print(content)

except FileNotFoundError:

print("Klaida: failas 'duomenys.txt' nerastas.")

VI. Užduotis: Ištrauk reikšmę iš dictionary

Parašyk programą, kuri leidžia vartotojui įvesti raktą ir grąžina reikšmę. Apsaugok nuo klaidingo rakto.

Sprendimas =>

data = {"vardas": "Jonas", "amžius": 25, "miestas": "Vilnius"}

try:

key = input("Įveskite raktą (vardas, amžius, miestas): ")

print(f"Reikšmė: {data[key]}")

except KeyError:

print("Klaida: toks raktas neegzistuoja žodyne.")

VII. Užduotis: Patikrink ar reikšmė yra set'e

--- Parašyk programą, kuri leidžia vartotojui įvesti vaisiaus pavadinimą ir tikrina, ar jis yra set'e.

Sprendimas =>

elements = {"obuolys", "bananas", "kriaušė"}

try:

item = input("Įveskite vaisiaus pavadinimą: ")

if item in elements:

    print("Vaisius yra sąraše.")

else:
    raise ValueError("Toks vaisius nerastas.")

except ValueError as e:

print(f"Klaida: {e}")

VII. Užduotis: Gauk reikšmę iš tuple pagal indeksą

Sprendimas =>

colors = ("raudona", "žalia", "mėlyna")

try:

index = int(input("Įveskite indekso numerį (0–2): "))

print(f"Spalva: {colors[index]}")

except IndexError:

print("Klaida: toks indeksas neegzistuoja.")

except ValueError:

print("Klaida: įvestas ne sveikasis skaičius.")

VIII. Užduotis: Maršruto tikrinimas su išimčių tvarkymu

  1. Turimas maršrutas:

marsrutas = ["Vilnius", "Ukmergė", "Panevėžys", "Šiauliai"]

Vartotojas turi įvesti miestą, per kurį nori važiuoti (pvz. "Kaunas").

Naudodami try–except bloką:

Patikrinkite, ar įvestas miestas yra maršrute.

Jei miestas yra – išveskite: „Kelias eina per [miestas]“

Jei nėra – išmeskite ValueError su pranešimu ir jį sugaukite.

Jei įvestis netinkama (pvz. tuščia) – apdorokite su Exception.

Sprendimas =>

marsrutas = ["Vilnius", "Ukmergė", "Panevėžys", "Šiauliai"]

try:

miestas = input("Įveskite miestą, per kurį norėtumėte važiuoti: ").strip()

if not miestas:

    raise ValueError("Miestas neįvestas.")

if miestas in marsrutas:

    print(f"Kelias eina per {miestas}.")

else:

    raise ValueError(f"Maršrutas neeina per {miestas}. Gal norite pasirinkti kitą kelią?")

except ValueError as ve:

print(f"Klaida: {ve}")

except Exception as e:

print(f"Nenumatyta klaida: {e}")