200. blogu yayınlıyor olmanın heyecanı ve gururuyla bu yazıyı yazıyorum. Kısa zamanda oldukça büyük bir yol katettiğimizi, insanların hayatlarına dokunduğumuzu ve yepyeni şeyler öğrendiğimizi düşünüyorum; umarım haklıyımdır. Nice 200'lere diyorum ve konuya geçiyorum.
200. blog özel iki adet çekiliş planladık. Birincisi 3 adet kitaptan oluşan bir kitap seti, ikincisi ise 10$. Çekilişe katılmak ve detayları öğrenmek için blogun sonunda vereceğim Instagram linklerini takip edebilirsiniz. Bugün burada yapacağımız uygulama ise bir çekiliş uygulaması. Yapacağımız çekilişlerin kazananlarını bu Python programı sayesinde belirleyeceğiz ve şeffaf bir şekilde hem buradan hem de Instagram üzerinden paylaşacağız. Bu noktada çekilişi kazanan kişiler anonim kalmak isterse bu konuda onu anlayışla karşılarız.
Anlatacağımız bu programı anlamak için Python bilmenize gerek yoktur; adımları tek tek açıklayacağız. Bu noktada dilerseniz Modüller | random isimli blogu ziyaret edebilirsiniz. Hemen çekiliş programını yazalım.
Bunun için ilk önce random kütüphanesini import ediyorum ve members isimli bir liste tanımlıyorum.

Çekilişe katılan arkadaşların kullanıcı adlarını bu şekilde gireceğiz. Çekilişe katılacak kişi sayısı ortalama olarak belli olduğu için (az kişi) bu yöntemi tercih ettim. Siz de bu programı kullanarak bir çekiliş düzenlemek isterseniz ve direkt olarak Instagram üzerinden veri çekecekseniz Pandas, Selenium, Instaloader gibi modülleri kullanabilir, başka bir modül kullanmak isterseniz araştırmasını yapabilirsiniz.
Listemizi tanımladık ve içerisine bazı üyeler girdik. Bu noktada ben, bir sayı listesi de oluşturmak istiyorum ama bunu, members listesinin uzunluğu kadar oluşturacağım. Bunun için List Comprehension yapısını kullanacağım.

Gördüğünüz üzere members isimli listenin uzunluğu kadar bir sayı (index) listesi yazdırıldı; ilk eleman aslında sıfırıncı index'e denk geliyor. Birazdan bunu neden yaptığımı anlayacaksınız.
Şimdi, direkt olarak random.choice(members) diyebilir ve Python'un, members listesinden rastgele bir üye seçmesini isteyebiliriz. Ancak ben biraz daha komplike olsun istiyorum. O yüzden ilk önce bu listeyi shuffle() fonksiyonu ile karıştırmak istiyorum.

random.shuffle(members) diyerek listedeki elemanları karıştırdım. Hemen sonrasında sonucu görebilmek adına print(members) dedim. Çıktı kısmına baktığımızda kodun güzel bir şekilde çalıştığını, listeyi karıştırdığını görebiliyoruz.
Şimdi, print(members) kodunu silip devam edelim.
members isimli listeyi karıştırdık. Şimdi yapacağımız şey, biraz önce members listesinin uzunluğu kadar oluşturulan sayı listesinden rastgele bir sayı çekmek olacak. Birazdan bu iki listeyi birbiriyle ilişkilendireceğiz. Nasıl yapıldığını görelim.

random.choice(numbers) diyerek numbers listesinden rastgele bir sayı çektik ve çekilen bu değeri selectedIndex değişkenine verdim. Sonrasında print(selectedIndex) diyerek rastgele çekilen bu sayıyı ekrana verdim. Çıktı kısmından da görebileceğiniz üzere her seferinde başka bir sayı getiriliyor.
members listesini karıştırdık ve rastgele bir sayı çektik. Bu ikisi birer liste olduğundan, index ile eleman çekebilirim. Örneğin members[2] dersem C harfi, members[0] dersem A harfi gelecektir. Karıştırılmış liste ile rastgele seçilen sayıyı birleştirirsek şöyle bir yapı oluşacaktır: members[selectedIndex]
Bu sayede aslında rastgele bir index belirleyip karıştırılmış üye listesinden üye çekeceğiz. Çünkü selectedIndex değişkeni her seferinde başka bir sayı tutacak. Dolayısıyla arka planda oluşacak yapı her seferinde değişecektir. Örneğin; members[0], members[20], members[11] gibi.
Çıktıları adım adım görelim.

İlk önce üyeleri yazdırdım. Dikkat ederseniz karıştırılmış bir şekilde gözüküyorlar. Sonrasında rastgele seçtiğim sayıyı yazdırdım; sonuç 4 olarak geldi. Son olarak 21. satırda members[selectedIndex] diyerek kazananı belirledim. Karıştırılmış listede dördüncü index'e giderseniz kazananın nasıl belirlendiğini göreceksinizdir.
Sıfırıncı index; C, birinci index; D, ikinci index; A, üçüncü index G; dördüncü index; F.
Şimdi, bu kodu arka arkaya çalıştıralım ve her seferinde nasıl değerler ürettiğini görelim.

İşte, çekilişlerin kazananlarını bu program ile belirleyeceğiz. Dilerseniz kodu alıp çalıştırabilirsiniz.
Çekilişlere katılmak için aşağıdaki linkleri takip edebilirsiniz:
Çekiliş Sona Ermiştir (26.12.22 17.15)
Çekilişin kazananları: @mustafa_yenel, @salimyeniocak
Yayınlanma Tarihi: 2022-12-25 14:14:17
Son Düzenleme Tarihi: 2022-12-29 13:38:45