Ana içeriğe geç

Python'da assert İfadesi Nasıl Kullanılır

Python'da assert ifadesini uygulamak basittir: Bir koşulu test etmek ve koşul yanlışsa bir mesaj göstermek için assert kullanırız.
· 6 dk. oku

Yapay Zeka ile Keşfedin

Python programlamada assert ifadesi, kodunuzdaki temel doğruları sağlamlaştırmaya yarayan bir araçtır. Geliştiricilerin kod içindeki varsayımları doğrulamasına imkân tanıyarak çalışır. Bu eğitimde, Python'un assert ifadesini sözdizimi, kullanımı ve hata ayıklama ile hata tespitindeki uygulamalarıyla birlikte öğreneceğiz. Python'un assert ifadesini ustalıkla kullanmayı öğrendiğimizde, bir Python Programcısı olma yolunda bir adım daha ilerlemiş olacağız. 

Kısa Cevap: Python'da Assertion Nasıl Yazılır 

assert ifadesinin sözdizimi basittir:

assert condition, message

Burada condition, test edilen ifadeyi; message ise assertion başarısız olursa görünen isteğe bağlı hata mesajını ifade eder.

Aşağıda, mantığını kavramak için Python kodunuzda deneyebileceğiniz birkaç assertion örneği yer alıyor. İlk durumda, 3<4>5 ifadesi mantıksal olarak yanlıştır; bu nedenle Python, verdiğimiz mesajla birlikte bir AssertionError yükseltir: "Math does not work that way." İkinci durumda ise 0==0 ifadesi bir totolojidir, bu yüzden "This shouldn't throw an error." mesajını hiç görmeyiz. 

assert 3<4>5, "Math does not work that way."
assert 0==0, "This shouldn't throw an error."

Python'daki assert İfadesine Genel Bakış

Şimdi Python'un assert ifadesine, nasıl ve neden kullanıldığı dâhil olmak üzere daha yakından bakalım. Bu eğitimin sonunda, Python'da assert ifadesinin nasıl kullanılacağı konusunda uzmanlaşmış olacaksınız. 

Python assertion'ları nedir?

Genel olarak programlamada assertion'lar, kod tabanındaki koşulların doğruluğunu teyit etmek için kullanılan yapılardır. Başka bir deyişle, programın uyması gereken doğrulardır; aksi hâlde bir hata fırlatırlar. Python, bu programlama assertion'larını oldukça yalın bir sözdizimiyle uygular: assert ifadesi bu assertion'ları oluşturmamıza olanak tanır.

Python assertion'ları ne zaman kullanılmalı

Assertion'lar, hata ayıklama, varsayımları doğrulama ve kodunuzun belirli koşullar altında beklendiği gibi davrandığından emin olma açısından çok değerlidir. Bilgisayara ne yapmasını beklediğinizi söylemenize ve farklı bir şey yaptığında durmasını istemenize imkân tanır. Bu, yeni bir program geliştirirken, bir özellik eklerken veya mevcut bir uygulamayı güncellerken kullanışlıdır.

Assertion'lar, geliştiricilerin kod tabanında önkoşulları, sonkoşulları veya değişmezleri zorunlu kılması gereken senaryolarda parıldar. Bariyer görevi görerek, belirli koşullar ihlal edilirse kodun ilerlemesini engeller ve potansiyel hataların erken tespitine yardımcı olur.

Assertion'ları koda stratejik olarak yerleştirerek hataları kaynağına daha yakın bir yerde yakalayabilir, hata ayıklamayı basitleştirebilirsiniz. DataCamp'in Python Developer kariyer yolu, hem temel hem de daha ileri kavramları içeren alıştırmalar sunduğu için tüm seviyelerden geliştirici adaylarının fonksiyonel programlama becerilerini pratik etmeleri için harika bir seçenektir.

Python assertion'ları ne zaman kullanılmamalı

Assertion'lar geliştirme sırasında çok değerli olsa da, kullanımının uygun olmayabileceği senaryolar vardır.

Kodunuz üretim için derlendiğinde assertion'ların küresel olarak devre dışı bırakılabileceğini anlamak önemlidir. Bu, assertion'lara çalışma zamanı problemlerini (örneğin bir kullanıcının yanlış veri girmesi) yönetmek için güvenmemeniz gerektiği anlamına gelir. Bunun yerine, mantık veya matematik hatalarını belirlemek gibi geliştirme problemleri için kullanılmalıdırlar.

Üretim kodunda hataları ele almak veya verileri doğrulamak için, kodun hatalardan zarifçe kurtulmasını sağlamak, hata ayıklama amacıyla ilgili bilgileri günlüğe kaydetmek ve kullanıcılara anlamlı geri bildirim sağlamak üzere istisna yakalama yapıları kullanmayı deneyin.

Hataları bulma ve düzeltme hakkında daha fazla bilgi edinmek için Python'da İstisna ve Hata Yönetimi eğitimimize göz atabilir veya Associate Data Scientist in Python kursumuzu alabilirsiniz. 

Python'daki assert İfadesiyle İlgili Yaygın Hatalar ve Yanılgılar

Python'da assert ifadesini kullanırken yapılan yaygın bir hata, parantez kullanmaktır. Birçok fonksiyonun parantez kullanması ve bunu eklemenin adeta otomatik bir refleks gibi gelmesi nedeniyle anlaşılabilir bir hatadır. Ancak assert ifadesi Python'da teknik olarak bir fonksiyon değildir; bu nedenle özel bir sözdizimi kullanır. Parantez kullanırsanız, büyük olasılıkla sözdizimi uyarıları ve mantıksal hatalarla karşılaşırsınız.

Bir assert ifadesinde parantez kullanılmasından kaynaklanan hataya örnek.SyntaxWarning: assertion is always true, perhaps remove parentheses?

Bir diğer yaygın hata, koşuldan sonra virgülü unutmaktır. Bu da bir sözdizimi hatasıyla sonuçlanır.

Bir assert ifadesinde eksik virgül nedeniyle oluşan hataya örnek.SyntaxError: invalid syntax

AssertionError istisnası

Bir assertion'ın şartları ihlal edildiğinde bir AssertionError istisnası yükseltilir. Bu hata programın yürütülmesini durdurur; belirlediğiniz isteğe bağlı hata mesajı görüntülenir. Assertion'lar esas olarak geliştirme sırasında kodunuzu test etmek için kullanıldığından, bir Python AssertionError istisna mesajı alırsanız bunu genellikle ciddiye almak istersiniz. Kodunuzda ölümcül bir kusura işaret ediyor olabilir.

Pratik Uygulamalar

Bir assert ifadesi Python'da birçok pratik uygulamada kullanılabilir. Python'da Fonksiyon Yazma adlı etkileşimli kursumuz, ustalık kazanmanıza yardımcı olacak pek çok alıştırma sunar. İşte birkaç örnek. 

Bir fonksiyon içinde assert kullanma

Assertion'ları kullanmanın faydalı bir yolu, onları fonksiyonlara yerleştirmektir. Bu, fonksiyonlarınızın amaçlandığı gibi davrandığından emin olmanıza yardımcı olabilir.

def divide(a, b):
assert b != 0, "Division by zero!"
return a / b

# Test cases
print(divide(10, 2))  # Output: 5.0
print(divide(8, 0))   # AssertionError: Division by zero!

unittest ile assert kullanma

Kodunuzu test etmek, geliştirme sürecinin temel bir adımıdır. Unittest, kodunuzu verimli bir şekilde test etmenize yardımcı olmak için tasarlanmış bir kütüphanedir ve bunu yapmak için assert ifadelerinden yararlanır. assert ifadelerini en sık bu şekilde kullanırım. İşte Python'da Teste Giriş kursumuzda görebileceğiniz bir örnek. 

import unittest

class TestMathFunctions(unittest.TestCase):
    def test_addition(self):
        self.assertEqual(2 + 2, 4)

    def test_subtraction(self):
        self.assertEqual(5 - 3, 2)

    def test_division(self):
        self.assertRaises(ZeroDivisionError, divide, 10, 0)

if __name__ == '__main__':
    unittest.main()

Sonuç

Python'un assert ifadesi, geliştirme sırasında kodunuzdaki koşulları doğrulamak ve hata ayıklamak için hayati bir araçtır. Varsayımları test etmek için basit ve etkili olsa da, derlenmiş kodda devre dışı bırakılabildiğinden üretimde ona güvenilmemelidir. Bunun yerine, sağlam bir hata yönetimi için istisna yakalama tercih edilmelidir. 

Kalan sorularınız için bir kaynak olarak Kodlama En İyi Uygulamaları ve Kılavuzları yazımızı incelemeyi düşünebilirsiniz.

Amberle McKee

Yazar

Amberle McKee

Biyolojik araştırma ortamında verilerle çalışma konusunda 13 yıllık deneyime sahip bir doktora sahibiyim. Python, MATLAB ve R dahil olmak üzere birkaç programlama dilinde yazılım geliştiriyorum. Öğrenme sevgimi dünyayla paylaşma konusunda tutkuluyum.

Konular

İlgili