Python’da all() fonksiyonu, bir dizisel yapıyı parametre olarak alır. Fonksiyon, dizi içerisindeki her bir elemanın değerini True olup olmadığına göre kontrol eder. Dizi içerisindeki tüm elemanların değeri True ise fonksiyon True değerini döndürür. Dizi içerisindeki herhangi bir elemanın değeri False ise fonksiyon False değerini döndürür.

Bu fonksiyon, dizisel yapıların doğruluğunu kontrol etmek veya bir koşulun sağlanıp sağlanmadığını belirlemek için kullanılabilir.

nums = [1, 2, 3, 4, 5]
sonuc = all(nums)
print(sonuc)

Çıktı:

True

Bu örnekte, nums adında bir liste tanımlanmıştır. Liste içerisindeki tüm elemanların değeri True olduğu için all() fonksiyonu True değerini döndürür.

nums2=[23, 5, 0, 12, -3]
sonuc2 = all(nums2)
print(sonuc2)

Çıktı:

False

Bu örnekte ise, nums2 adında bir liste tanımladık ve liste içerisindeki elemanlardan sadece birinin değeri False olduğu için all() fonksiyonu False değerini döndürdü.

all() fonksiyonu parametre olarak yinelenebilir(iterable) nesneleri alır. Bu, yukarıdaki örnekte olduğu şekilde bir liste olabileceği gibi; demet, sözlük, küme, dize(string) veya başka bir yinelenebilir nesne olabilir.

all() Fonksiyonu ile Proje Geliştirme Örnekleri

Gelin isterseniz gerçek hayatta bir işyerinde çalışırken ya da kendi projelerinizi geliştirirken bu fonksiyondan nasıl faydalanabileceğinize bir kaç örnek verelim. Daha etkileyici şekilde ifade etmek gerekirse; gerçek hayat senaryolarında all() fonksiyonunun kullanımına örnekler verelim;

e-Ticaret Stok Kontrolü

e-Ticaret uygulamalarında bir ürünün satışa çıkabilmesi için stokta en az bir ürün olması gerekir. any() fonksiyonunu kullanarak, stokta olan en az bir ürün olduğunu kontrol edebiliriz.

# ETİCARET STOK KONTROLÜ ÖRNEK SENARYOSU
def stok_durumu(urunler):
  return all(urun['stok_adedi'] > 0 for urun in urunler)

# Satıştaki Ürünler
urunler = [
  {'urun_adi': 'Ürün 1', 'stok_adedi': 5},
  {'urun_adi': 'Ürün 2', 'stok_adedi': 0},
  {'urun_adi': 'Ürün 3', 'stok_adedi': 10}
]

if stok_durumu(urunler):
  print("Tüm ürünler stokta mevcut.")
else:
  print("Stokta bulunmayan ürünler var.")

Çıktı:

Stokta bulunmayan ürünler var.

Veri Doğrulama

all() fonksiyonu, bir veri kümesinin belirli bir kriteri karşılayıp karşılamadığını kontrol etmek için kullanılabilir. Örneğin, bir e-posta listesindeki tüm adreslerin geçerli olup olmadığını kontrol etmek için, aşağıdaki kodu kullanabiliriz:

# Bir e-posta adresinin geçerli olup olmadığını kontrol eden bir fonksiyon yazalım
def emailler_gecerlimi(email):
    # E-posta adresinin @ işareti içerip içermediğini kontrol eder
    if "@" not in email:
        return False
    # E-posta adresinin . işareti içerip içermediğini kontrol eder
    if "." not in email:
        return False
    # Eğer tüm kriterleri karşılıyorsa, True döndürür
    return True

# Kontrol için girdi olacak örnek bir e-posta listesi oluşturalım 
email_listesi = ["ali@gmail.com", "ayse@hotmail.com", "mehmet@yahoo.com", "can@outlook.com"]

# all() fonksiyonu ile tüm e-posta adreslerinin geçerli olup olmadığını kontrol edelim
if all(emailler_gecerlimi(email) for email in email_listesi):
    print("Tüm e-posta adresleri geçerlidir.")
else:
    print("Geçersiz e-posta adresi bulundu.")

Çıktı:

Tüm e-posta adresleri geçerlidir.

E-posta adresinin başka bir kriteri karşılayıp karşılamadığını kontrol etmek için ek koşullar ekleyebilirsiniz. Örneğin dışarıdan kullanıcı kabul etmeyen özel bir siteye kullanıcıların sadece projeyi geliştirdiğiniz şirketin emailleri ile kayıt olması istendiğinde domain adı için bir koşul yazarak bu kodu kullanabilirsiniz.

Form Doğrulama

Önceki örneğe benzer şekilde kullanıcının bir formu doldurmasını istediğiniz durumlarda, hiç bir alanı boş geçmemesi için tüm form alanlarının veri içerdiğini kontrol edebilirsiniz;

# Tüm form alanlarının doldurulup doldurulmadığını kontrol et
form_verileri = ["John", "Doe", "john.doe@email.com", "12345"]
def verileri_gonder(veriler):
  #Veriler ile yapılacak işlemi içeren fonksiyon kodları burada yer alacaktır.
  print("Veriler gönderiliyor...")
  
veri_kontrolu = all(form_verileri)
if veri_kontrolu:
    verileri_gonder(form_verileri)
else:
    print("Lütfen tüm form alanlarını doldurun.")

Çıktı:

Veriler gönderiliyor…

Kullanıcı Girişi

Bir kullanıcının sisteme giriş yapabilmesi için bir takım koşulların sağlanması gerekir. Kullanıcının giriş formundaki alanları boş geçmemesi ve doğru kullanıcı adı ve bilgileri vermiş olması gibi. Şimdi bu iki koşulun doğruluğunu test eden bir Python koduyla all() fonksiyonunu örnekleyelim;

# KULLANICI GİRİŞİ ÖRNEK SENARYOSU
# Kullanıcıdan kullanıcı adı ve şifresi aldığımızı varsayalım
username = "copilot"
password = "123456"

# Doğru kullanıcı adı ve şifresi ise şu şekilde olsun
correct_username = "copilot"
correct_password = "123456"

kontrol = []
# Önce boş verimiz olmadığını doğrulayalım
if not username or not password:
    kontrol.append(0)
else:
    kontrol.append(1)

# Kullanıcı verilerinin doğru olduğunu kontrol edelim
if username == correct_username and password == correct_password:
  kontrol.append(1)
else:
  kontrol.append(0)

# all() fonksiyonu ile hem kullanıcı adının hem de şifrenin doğru olup olmadığını kontrol eder
if all(kontrol):
    print("Giriş başarılı.")
else:
    print("Giriş başarısız.")

Çıktı:

Giriş başarılı.

Bu kodda öncelikle kullanıcı adının ve parolanın boş olup olmadığını kontrol ediyoruz. Bu bilgilerden herhangi biri boşsa oluşturduğumuz kontrol dizisine False değerini ekliyor. Ayrıca, kullanıcı adının ve parolanın kullanıcının girdiği verilerle eşleşip eşleşmediğini kontrol ediyoruz. Eşleşme bulursa kontrol dizisine True yoksa False değerini ekliyor. Son olarak kullanıcı girişinin başarılı olabimesi için kontrol dizisindeki verilerin hepsinin doğru olması gerektiği için all() fonksiyonu ile bunu test ediyoruz. all() fonksiyonu bize True değerini döndürürse kullanıcı girişi onaylanıyor. Aksi takdirde reddediliyor. Siz de aşağıda verdiğim linke tıklayıp online Python kod yorumlayıcıyı kullanarak örnek kodlar üzerinde kullanıcıdan alınan verileri boş bırakarak ya da değiştirerek sonuçları test edebilirsiniz.

Dosya İşlemleri

Varsayalım ki bir dosya işlemi üzerinde çalışıyorsunuz ve bir dizindeki tüm dosyaların belirli koşulları karşılayıp karşılamadığını kontrol etmek istiyorsunuz. Bu gibi durumlarda da all() fonksiyonundan faydalanabilirsiniz. Bu işlemi yerel bilgisayarınızda çalışan bir Python uygulaması içinde gerçekleştirebileceğiniz gibi sunucuda çalışan bir Python uygulaması da yazabilirsiniz.

Örnek senaryomuz bir klasör içinde sadece belirli bir uzantıya sahip dosyalar olup olmadığını kontrol etmek olsun. Bununla ilgili bir senaryo düşünürsek; sunucunuzda güvenlik kontrolü yapan bir uygulama yazıyor olduğunuzu düşünebiliriz. Bir web sitesini oluşturan PHP, Javascript, HTML, CSS, resimler ve videolar gibi dosyaların haricinde zararlı bir kod dosyasının var olup olmadığını bulmak için all() fonksiyonuyla kod yazabilirsiniz. Biz burada bunun daha basit bir versiyonunu kodlayalım. Lokal bilgisayarımızdaki bir klasör içinde sadece jpeg dosyaların olup olmadığını kontrol edelim.

# Yerel dosyalara erişmek için os modülünü ekleyelim
import os

# Bir dizindeki tüm dosyaların .txt uzantısına sahip olup olmadığını kontrol et
dosya_yolu = "/Users/obenseven/Documents/2023-resimlerim"
dosyalar = [dosya.endswith(".jpeg") for dosya in os.listdir(dosya_yolu)]
def dosya_islemleri(x):
    print("Dosyalara yapılacak işlemler...")

if all(dosyalar):
    dosya_islemleri(dosya_yolu)
else:
    print("Tüm dosyalar gerekli .jpeg uzantısına sahip değil.")

Çıktı:

Dosyalara yapılacak işlemler…

Matematiksel İşlemler

all() fonksiyonu, bir matematiksel ifadenin veya denklemin belirli bir koşulu sağlayıp sağlamadığını kontrol etmek için de kullanılabilir. Örneğin, bir polinomun köklerinin tümünün pozitif olup olmadığını kontrol etmek için, aşağıdaki kodu kullanabiliriz:

# Numpy kütüphanesini içe aktaralım
import numpy as np

# Örnek bir polinom oluşturalım
p = np.poly1d([1, -5, 6])

# Polinomun köklerini bulalım
kokler = p.roots

# all() fonksiyonu ile tüm köklerin pozitif olup olmadığını kontrol edelim
if all(kok > 0 for kok in kokler):
    print("Tüm kökler pozitiftir.")
else:
    print("Negatif kök vardır.")

Çıktı:

Tüm kökler pozitiftir.

Bu konuda yer alan örnekleri görüp çalıştırarak test edebilirsiniz;
https://replit.com/@ObenSEVEN/all-Fonksiyonu