Python

Validation İşlemlerini Gerçekleştirerek Üçgenin Alanını Bulan Python Uygulaması

Geometrinin önemli konularından biri de üçgenlerdir. Üç kenarı olan geometrik şekle üçgen denir. Üçgenin alanını bulmak için taban kenarıyla bu tabana dik indirilen yüksekliğin girilmesi gerekir. Bu uygulamada üçgenin alanını bulurken gerekli hata kontrollerini de gerçekleştireceğiz.

Visual Studio programını açalım.

İsmi Geometri olan yeni bir Python uygulaması oluşturalım. 

Projeye ucgen.py isminde bir python dosyası ekleyelim.

Öncelikle programda kullanılan değişkenleri belirleyelim. Taban kenarı için a, yükseklik için h değişken adını kullanalım. Üçgenin alanını da alan değişken ismiyle belirleyelim. Üçgene ait kenar uzunlukları pozitif sayı olmalıdır. Verilen sayılar reel sayı da olabilir. Buna göre değişken tipini belirlememiz gerekir. Değişkenleri oluşturalım. 

# Değişkenleri Tanımla
a: float = 0.0
h: float = 0.0
alan: float = 0.0

Kullanıcıdan taban kenarının ve yüksekliğin alınması gerekir. Klavyeden girilen değerler tırnak içinde ve metinsel değerlerdir. Bu değerlerin float değişken tipine dönüştürülmesi gerekir. Buna göre kullanıcıdan değer girişlerini alalım.

# Değerleri Gir
a = float(input("Taban Kenar Uzunluğu : "))
h = float(input("Yükseklik : "))

Artık üçgenin alanını hesaplayabiliriz. Alan formilü taban kenar x yükseklik / 2 idi. Şimdi bu formülü kullanarak üçgenin alanını bulalım.

# İşlemi Yap
alan = (a * h) / 2

Sonucu ekranda görüntüleyelim. Elde edilen sonuç reel yani ondalıklı olduğu için sonucu yuvarlayarak görüntüleyelim.

# Sonucu Görüntüle
print(f"Üçgenin Alanı : {alan:.2f}")

En basit anlamda üçgenin alanını bulduk. Şimdi programda oluşabilecek hataları ve çözümlerini bulmaya çalışalım.

Kullanıcı taban kenarı ya da yüksekliği girerken sayı yerine harf, boşluk veya başka karakterlere basarsa oluşan hatayı düzeltme.

Kullanıcı taban kenarı ya da yüksekliği girerken sayı yerine harf, boşluk veya başka karakterlere basarsa ne olur. Hadi bunu deneyelim. Programı çalıştıralım. Taban kenarı girerken sayısal bir değer yerine k harfina basalım ve Enter tuşuna basalım. Program float tipinde bir değişkene string bir değer girdiğimize dair bilgi verir ve programı sonlandırır. Ya da hiçbir tuşa basmayıp Enter tuşuna bastığımızda aynı hatayı verecektir. Bu da bir program için istenmeyen bir durumdur. Kullanıcının bilgilendirilmesi ve programın devam etmesi gerekir. Bu işlemi gerçekleştirmek için try - except hata bloğunu kullanmamız gerekir. Hata oluşabilecek kod satırı try bloğu içine alınır. Oluşacak hatalar ise except bloğunda görüntülenir. Şimdi bunu yapalım.

try:
    # Değerleri Gir
    a = float(input("Taban Kenar Uzunluğu : "))
    h = float(input("Yükseklik : "))
except ValueError:
    print("Lütfen sayısal değer girişi yapınız...")

Programı çalıştıralım. Taban kenarı yerine k harfini girelim. Program hatayı bulacak ancak hatalı bir şekilde işlemi tamamlayacaktır. Halbuki hatalı bir değer girişi yapıldığında işlemin yapılmaması gerekir. Bunun için while döngüsünden yararlanabiliriz.

while True:
    try:
        # Değerleri Gir
        a = float(input("Taban Kenar Uzunluğu : "))
        h = float(input("Yükseklik : "))
        break
    except ValueError:
        print("Lütfen sayısal değer girişi yapınız...")

Programı çalıştıralım. Taban kenarı ve yükseklik değerleri sayı olarak girilmediği müddetçe program devam etmeyecektir. Aynı zamanda sonlanmayacaktır.

Kullanıcı taban kenarı ya da yükseklik değerini negatif sayı girerse oluşacak hatayı düzeltme

Geometrik şekillerde kenarlara negatif sayı girilemez. Bu tip bir hata programın sonlandırılması için bir sebep değildir. Çünkü sayılar negatif olabilir. Bu hatanın düzeltilmesi için programcının kendi hata türünü oluşturması gerekir. Biz bu hata türünü yakalamak için NegativeError hata yakalama işlemini gerçekleştireceğiz. Programın başına tanımlayacağımız hata türlerini class olarak girmemiz gerekir. Programın başına aşağıdaki kodları yazalım.

class NegativeError(Exception):
    pass

Peki tanımladığımız bu hata türünü program içinde nasıl kullanacağız. Şimdi bunu gerçekleştirelim.

while True:
    try:
        # Değerleri Gir
        a = float(input("Taban Kenar Uzunluğu : "))
        if a < 0:
            raise NegativeError
        
        h = float(input("Yükseklik : "))
        if h < 0:
            raise NegativeError
        
        break
    except NegativeError:
        print("Negatif Sayı Giremezsiniz...")
    except ValueError:
        print("Lütfen sayısal değer girişi yapınız...")

Programı çalıştıralım. Artık hem a hem de h değişkeni için negatif sayı girmemiz engellenmiş oldu.

Kullanıcı taban kenarı ya da yükseklik değerini sıfır girerse oluşacak hatayı düzeltme

Geometrik şekillerde kenarlara sıfır sayısı girilemez. Bu tip bir hata programın sonlandırılması için bir sebep değildir. Çünkü sayılar sıfır olabilir. Bu hatanın düzeltilmesi için programcının kendi hata türünü oluşturması gerekir. Biz bu hata türünü yakalamak için ZeroError hata yakalama işlemini gerçekleştireceğiz. Programın başına tanımlayacağımız hata türlerini class olarak girmemiz gerekir. Programın başına aşağıdaki kodları yazalım.

class ZeroError(Exception):
    pass

Peki tanımladığımız bu hata türünü program içinde nasıl kullanacağız. Şimdi bunu gerçekleştirelim.

while True:
    try:
        # Değerleri Gir
        a = float(input("Taban Kenar Uzunluğu : "))
        if a < 0:
            raise NegativeError
        elif a == 0:
            raise ZeroError
        
        h = float(input("Yükseklik : "))
        if h < 0:
            raise NegativeError
        elif h == 0:
            raise ZeroError
        
        break
    except ZeroError:
        print("0 Sayısını Giremezsiniz...")
    except NegativeError:
        print("Negatif Sayı Giremezsiniz...")
    except ValueError:
        print("Lütfen sayısal değer girişi yapınız...")

Programı çalıştıralım. Artık hem a hem de h değişkeni için 0 sayısını girmemiz engellenmiş oldu. Programı çalıştırdığınızda hatalı işlem girişi yapıldığında işlemler ekranda listelenmekte ve programa ait çalıştırma satırları çoğalmaktadır. Bu da kullanıcının kafasını karıştırır. Hatalı işlem yaptığında ekranın temizlenmesini sağlayalım. Öncelikle programın başına aşağıdaki kodu yazarak os sistem kütüphanesini yükleyelim.

import os

Daha sonra sistem kütüphanesi içinde kullanılan cls komutunu çalıştıralım. Bu komutu hata mesajı görüntülendikten sonra kullanalım. Böylece kullanıcı hatayı neden yaptığını görsün.

while True:
    try:
        # Değerleri Gir
        a = float(input("Taban Kenar Uzunluğu : "))
        if a < 0:
            raise NegativeError
            
        elif a == 0:
            raise ZeroError
        
        h = float(input("Yükseklik : "))
        if h < 0:
            raise NegativeError
        elif h == 0:
            raise ZeroError
        
        break
    except ZeroError:
        print("0 Sayısını Giremezsiniz...")
        input()
        os.system("cls")
    except NegativeError:
        print("Negatif Sayı Giremezsiniz...")
        input()
        os.system("cls")
    except ValueError:
        print("Lütfen sayısal değer girişi yapınız...")
        input()
        os.system("cls")

Programı çalıştıralım. Artık kullanıcı gereksiz satırları görmeyecek, uygulama en sade haliyle çalışacaktır.

Kullanıcı yardımcı tuşlarla beraber farklı işlemler yaparsa oluşacak hatayı düzeltmek için aşağıdaki kod satırını except kod bloğuna eklemeniz yeterli olacaktır.

except KeyboardInterrupt:
    print("\nLütfen sayısal değer girişi yapınız...")
    input()
    os.system("cls")

Etiketler
python try cacth validation control 
İlgili Makaleler
NumPy Kütüphanesi ve Kurulumu
Programlama Temelleri Dersi İkinci Dönem Birinci Yazılı Çalışma Soruları
Faktöriyel Hesabı Yapan Python Uygulaması
Seaborn Kütüphanesi ve Kurulumu
MatPlotLib Kütüphanesi ve Kurulumu
Pandas Kütüphanesini Kullanarak Excel Dosyasından Veri Çekme
Dağılım Ölçütü
Programlama Temelleri Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
Ekrana Yıldız Üçgen Çizen Uygulamayı Fonksiyon Tanımlayarak Yapan Python Uygulaması
Girilen Doğum Tarihine Göre Kullanıcının Yaşını Bulan Python Uygulaması
Veri Bilimine Giriş
Dört İşlemi Fonksiyon Tanımlayarak Yapan Python Uygulaması
Visual Studio 2022 Programında Python Uygulaması Yazarken Türkçe Karakter Sorunu ve Çözümü
Pandas Kütüphanesi ve Kurulumu
Seaborn Kütüphanesini Kullanarak Saçılım Grafiği Oluşturma
Visual Studio 2022 Programında Python Uygulamasını Yazma ve Çalıştırma
Ayt Belirli Sayıda Tekrarlanan Logaritmik Değerlerin Toplamını Bulan Python Uygulaması
NumPy Kütüphanesinde İki Matrisin Çarpımı
Python Dilinde WhatsApp Uygulamasına Bot Yazarak Belirlenen Kullanıcıya Mesaj Atma
Olasılık Yoğunluk Fonksiyonu ve Kümülatif Dağılım Fonksiyonu

Yorum Ekle
   
Kötü İyi