Giriş
Python dilinde veri doğrulama ve tip kontrolü oldukça önemlidir. Bu ihtiyaç, özellikle kullanıcıdan alınan verilerin sayısal olup olmadığını kontrol etmek istediğimizde kendini gösterir. Bu tür kontrollerde sıkça karşılaştığımız iki metot bulunmaktadır: isnumeric()
ve isdigit()
. Her iki metot da bir dizenin sayısal bir değer içerip içermediğini kontrol etmemize yarar, ancak kullanım şekilleri ve döndürdükleri sonuçlar açısından bazı önemli farklar vardır.
Bu yazıda, isnumeric()
ve isdigit()
metotlarının ne olduğunu, nasıl kullanıldıklarını ve aralarındaki temel farkları detaylı bir şekilde inceleyeceğiz. Python’da çalışma hayatınızda bu metotları daha verimli bir şekilde nasıl kullanabileceğinizi öğrenmek için okumaya devam edin!
isnumeric() Metodu Nedir?
isnumeric()
metodu, bir karakter dizisinin (string) tamamen sayılardan oluşup oluşmadığını kontrol eder. Bu metot, çeşitli sayı türlerini tanır; bunlar arasında tam sayılar, kesirli sayılar, üzerlerinde bir sembol bulunan sayılar (örneğin: süper script) gibi farklı biçimler yer alabilir. Eğer dize tamamen sayısal karakterler içeriyorsa, metot True
değerini döndürür, aksi takdirde False
döner.
Örnğe bakacak olursak, "12345".isnumeric()
ifadesi True
dönerken; "12345abc".isnumeric()
ifadesi False
dönecektir. Burada dikkat edilmesi gereken bir diğer önemli nokta ise, isnumeric()
metodu yalnızca Unicode sayısal karakterlerini tanır. Örneğin, Arapça rakamlar veya üstü sayı olan rakamlar gibi karakterler de bu metot tarafından tanınır.
Bu metodu kullanmak, kullanıcıdan ya da dış bir kaynaktan gelen verilerin sayısal olup olmadığını hızlı bir şekilde doğrulamak için oldukça yararlıdır.
isdigit() Metodu Nedir?
Python’daki isdigit()
metodu, bir karakter dizisinin yalnızca onluk sayılardan oluşup oluşmadığını kontrol eder. Yani, bu metod sadece 0’dan 9’a kadar olan karakterleri tanır. Eğer dize yalnızca bu karakterlerden oluşuyorsa True
döner, aksi takdirde False
döner.
Örneğin, "12345".isdigit()
ifadesi True
dönerken, "12345abc".isdigit()
ve "123.45".isdigit()
ifadeleri False
dönecektir. isdigit()
metodu, yalnızca sayı karakterleri içeren basit doğrulama senaryolarında kullanılmak için ideal bir seçenektir.
Bu metodu kullanarak, kullanıcı girişlerinden belirli bir formatta veri aldığımızda, özellikle form alanlarında, veri doğrulama işlemlerini basitleştirebiliriz.
isnumeric() ve isdigit() Arasındaki Farklar
Temelde, isnumeric()
ve isdigit()
metotları birbirine benzer işlevler üstlenmekle birlikte birkaç önemli fark vardır. İlk olarak, isnumeric()
metodu daha geniş bir karakter aralığını tanırken, isdigit()
metodu yalnızca onluk rakamları tanır. Yani isnumeric()
kullanarak, Arapça rakamlar, Roma rakamları ve diğer özel sayı karakterlerini de kontrol edebilirsiniz.
Örneğin, "Ⅻ".isnumeric()
ifadesi True
dönerken, "Ⅻ".isdigit()
ifadesi False
dönecektir. Bu durum, veri denetimi yaparken hangi metodu seçeceğiniz konusunda dikkate almanız gereken önemli bir detaydır.
İkinci olarak, eğer bir dizeniz bir boşluk içeriyorsa, bu durumda isnumeric()
metodu False
döner, ancak isdigit()
metodu yine False
dönecektir. Ancak, eğer metin içerisinde geçerli herhangi bir sayı (örneğin "١٢٣٤٥"
) varsa, isnumeric()
bunu tanıyacaktır, ancak isdigit()
bu durumu kontrol etmez.
Uygulama Örnekleri
Bu metotları kullanarak bazı basit uygulama örnekleri görmek konunun daha iyi kavranmasına yardımcı olacaktır. Örneğin, kullanıcıdan alınan bir veriyi kontrol etmek için aşağıdaki gibi bir Python kodu yazabiliriz:
def check_number(input_string):
if input_string.isnumeric():
return 'Dizi tamamen sayılardan oluşmaktadır.'
else:
return 'Dizi sayılardan oluşmamaktadır!'
print(check_number('12345'))
print(check_number('12345abc'))
Bu örneği çalıştırdığımızda, kullanıcıdan alınan dizilerin sayısal olup olmadığını kontrol edebiliriz. Ancak burada dikkat etmemiz gereken, kullanıcıdan gelen verinin hangi formatta olduğu, hangi metodu seçeceğimizde önemli bir rol oynayacaktır.
Bir diğer örnekte ise isdigit()
metodunun kullanımına bakalım:
def check_digit(input_string):
if input_string.isdigit():
return 'Dizi yalnızca rakamlardan oluşmaktadır.'
else:
return 'Dizi rakamlardan oluşmamaktadır!'
print(check_digit('12345'))
print(check_digit('123.45'))
Burada ise yalnızca onluk rakamları içeren bir kontrol gerçekleştiriyoruz. Görüldüğü gibi, isdigit()
metodu yalnızca sayılardan oluşup oluşmadığını kontrol ederken, isnumeric()
daha kapsamlı bir sayı tanıma işlevi sunmaktadır.
Sonuç
Python’da veri doğrulama yaparken, kullanıcıdan alınan girilen verinin sayısal olup olmadığını kontrol etmeyi gerektiren durumlarla karşılaşabiliriz. Bu bağlamda isnumeric()
ve isdigit()
metotları kritik bir rol oynar. Her iki metodun da kendine has avantajları ve kullanım alanları vardır.
Benzer gibi görünen bu metotlar arasındaki farkları anlamak, yazılımcılara doğru metodu seçme ve uygun veriyi yönetme yeteneği kazandırır. Bu makalede, isnumeric()
ve isdigit()
metotlarını detaylı bir şekilde inceleyerek, hangi durumlarda hangi metodu kullanmamız gerektiğine dair anlayış geliştirdik.
Sonuç olarak, Python’da sayı kontrolü yapmak için bu metotları etkili bir şekilde kullanmak, hem kullanıcı deneyimini artırır hem de uygulamalarımızın güvenilirliğini sağlar. Kendi projelerinizde bu metotları deneyimleyerek, kullanıcıdan aldığınız verileri daha sağlıklı bir şekilde işleyebilirsiniz. Kod yazmanın ve veri yönetiminin keyfini çıkarın!