Merhaba. Bu yazınının konusu Python all fonksiyonu Nedir? Bir önceki yazıda abs fonksiyonunu anlatmıştım. Bu yazıda işleyeceğimiz konu büyük bir iterable nesnenin içerisinde bulunan tüm verilerin dolu olup olmadığıdır.
Python all fonksiyonu Nedir?
Örneğin elimizde n elemanlı list, tuple ya da dictionary var. Bu yapılar farklılıklara sahip olsa da iterable olmaktadır. Bu iterable nesnelerin tamamını bir döngüye sokup tüm değerlerinin true ya da false dönüp dönmediğini kontrol etmek uzun süre alabilir. Bunun yerine all() isimli bir fonksiyon zaten mevcut.
Örneğin X isimli bir listede ya da iterable olan herhangi bir nesnede tüm değerler None değerden, sıfırdan ve boş stringten farklı diyelim. Bu durumda bu liste tamamıyla dolu elemanlardan oluşmaktadır ve tamamının işlenmiş olduğu söylenebilir. Gelelim nasıl çalıştığına.
Listelerde all Kullanımı
Öncelik listelerde ya da diğer dillerde bildiğimiz şekliyle dizilerde kullanımını görelim:
l = [1, 3, 4, 5, 'Değişik bir liste', True] print(all(l))
Yukarıdaki listenin tüm elemanları true sonuç döndürecektir. Mantıksal olarak string boş değilse doludur. Bool değer true ise sonuç true’dur. Eğer boole cebri biliyor isek 1 ve 0’ın doğru ve yanlış’ı oluşturduğunu da biliyoruzdur. Bu durumda da 1 == true diyebileceğimiz gibi 0 == false diyebiliriz. Bu nedenden dolayı da yukarıdaki sonuç True döndü. Fakat belirli durumlarda sonuç false dönebilir. Bu durumları veren birkaç örnek verelim.
l = [1, 3, 4, 5, '', True] print(all(l))
Yukarıdaki işlemde sonuç false dönecektir. Çünkü boş string, değersizdir. Burada Python dokumanında verilmiş güzel bir açıklama da mevcut ayrıca. Bu linkteki bilgiler ışığında boş değerin karakter boyutu SIFIR olduğu için false döneceğini söyleyebiliriz. Stringler için bu olaya falsy values denilebilir. Gelelim diğer yöntemlere:
l = [1, 3, 4, 5, 'Test', True, 0] print(all(l))
Sonuç false dönecektir. Çünkü içerisinde dönen bir adet SIFIR bulunmakta. Bu da boole cebrine göre yanlış yani false value. Bir diğer yönsem ise None kullanımıyla oluyor:
l = [1, 3, 4, 5, 'Test', True, 1, None] print(all(l))
Bilindiği üzere tanımsız yani hiçlik içeren değerler de doğruluk tablosunda false value verirler. Bu nedenden dolayı yukarıdaki None false dönecektir. Aslında üç değerli mantık True, False ya da Unknown olmalıdır. Fakat bu durumda sağlanması beklenen içerisinde anlamlı veri içeren şeyler ön planda olacağı için sonucu False verecektir. Evet bu kadar arkadaşlar.
all vs any Farkı Nedir?
Arkadaşlar all tüm değerlerin true olmasını şart koşarken, any sadece bir tanesi bile true olsa tüm listenin true olduğunu kabul eder. Bu kadar. Yine çalışma şekli aynıdır.
Bu yazıda Python all fonksiyonu Nedir? hakkında bilgiler sunmaya çalıştım. Okuduğunuz için teşekkür ederim. Umarım faydalı bir yazı olmuştur. Yine gömülü fonksiyonları anlatan seriye devam etmeye çalışacağım.
Hatalı bir nokta var ise belirtmenizi isterim.