# Python all() fonksiyonu Nedir?


Merhaba. Bu yazınının konusu Python all fonksiyonu Nedir? Bir önceki yazıda abs fonksiyonunu [anlatmıştım](https://aligoren.com/python-abs-fonksiyonu-nedir/). 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?](images/python.png)

## 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](https://en.wikipedia.org/wiki/Boolean_algebra) 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](https://docs.python.org/3.6/library/stdtypes.html#truth-value-testing) 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](http://wiki.c2.com/?ThreeValuedLogic) 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.

