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.
Başlıklar
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
İlgili Yazılar
1 Comments
Comments are closed.
[…] yapısıyla esasında all() fonksiyonu ile benzerlik gösteriyor. all() tüm öğelerin True olmasını gerektiriyordu, any() […]