Page 129 - Bilgisayar Bilimi | Kur 1
P. 129
Yorumlayıcı, söz dizimi hatalarını programı çalıştırmaya başlamadan önce algılar ve bu nedenle söz
dizimi hatalarını içeren bir programın herhangi bir parçasını çalıştırmaz.
3.8. Çalışma Zamanı Hataları
Doğru yazılmış bir Python programın hâlâ sorunları olabilir. Bazı dil hataları programın yürütül-
mesi durumuna bağlıdır. Yorumlayıcı bir istisna yaratır. Çalışma zamanı istisnaları yorumcunun çeviri
aşamasından sonra ve programın yürütme aşamasında ortaya çıkmaktadır.
Yorumlayıcı aşağıdaki gibi söz dizimsel olarak doğru bir ifade için bir istisna verebilir.
x = y + 2 d
Eğer y değişkeni henüz atanmamışsa;
(NameError: name ‘y’ is not defined) hatası mesajını verir.
Kullanıcıyı 32 (pay) ve 0 (payda) olarak yazdığınızda
Zero Division Error: division by zero
veya harf dizinini bölmeye kalktığınız takdirde
unsupported operand type(s) for /: ‘str’ and ‘int’ uyarısı alabilirsiniz.
3.9. Mantık Hataları
Bölünen/bölen ifadesi yerine bölen/bölünen olarak değiştirdiğinizde etkilerini düşünün. Program
çalışır ve kullanıcı bölünene sıfır değeri girmedikçe, yorumlayıcı hata raporu vermeyecektir. Ancak he-
saplanan cevap genel olarak doğru değildir. Program sadece bölünen ile bölen eşit olduğu zaman doğru
cevap yazdıracaktır. Program bir hata içermektedir. Fakat yorumlayıcı sorunu algılayamaz. Bu tür bir
hata, bir mantık hatası olarak bilinir. Yorumlayıcı, mantık hatalarının konumu için herhangi bir fikir
sağlamakta güçsüzdür. Mantık hataları, bu nedenle, bulma ve onarmakta en zor olma eğilimindedirler.
Yorumlayıcı mantık hatalarına yönelik hiçbir yardımda bulunmaz.
3.10. Aritmetik Örnekler
Örnek: Sıcaklığı Fahrenheit derecesinden Celcius derecesine dönüştürmek istediğinizi varsayalım.
>>> # Sıcaklık değerini okumak için
>>> dereceF = float (input (‘Sıcaklığını F derece olarak girin:’))
>>> # Dönüşümü gerçekleştirin
>>> dereceC = 9/5 * (dereceF - 32)
>>> # Sonucu bildir
>>> print (dereceF, ‘derece F =’, dereceC, ‘C derece’)
Sıcaklığını F derece olarak girin: 212
212 ° F = 100.0 ° C
Örnek: Kullanıcının girdiği saniyeleri, saat, dakika ve saniye olarak parçalara ayıran programda
tamsayı bölme ve modül kullanır.
>>> saniye = int (input (“saniye sayısını girin:”))
128