Random Modülü Nedir ve Nasıl Kullanılır?
Python'da rastgele sayı üretmek ve veri yapılarından rastgele seçim yapmak için random modülü kullanılır. Bu modül, rastgele sayı üreterek çeşitli programlama ihtiyaçlarını karşılar. Python ile oyun geliştirme, simülasyon ve test senaryoları gibi çeşitli alanlarda random modülünden sıkça yararlanılır.
random modülünü kullanmadan önce Python’a dahil etmek gereklidir:
import random
Rastgele Sayı Üretimi: random() Fonksiyonu
random() fonksiyonu, 0.0 ile 1.0 arasında rastgele bir ondalık sayı döner. Bu fonksiyon özellikle rastgele seçimler yapmak ve şans oyunları geliştirmek için kullanılır.
import random
rastgele_sayi = random.random()
print(f"0 ile 1 arasında rastgele sayı: {rastgele_sayi}")
Bu kod, her çalıştırıldığında 0.0 ile 1.0 arasında rastgele bir sayı üretir.
Belirli Aralıklarda Rastgele Sayı: randint() Fonksiyonu
randint(a,b) fonksiyonu, a ve b dahil olmak üzere belirli bir aralıkta tam sayı üretir. Örneğin, 1 ile 10 arasında bir zar atma simülasyonu yapmak için kullanılır.
import random
zar = random.randint(1, 6)
print(f"Zar atışı sonucu: {zar}")
Bu kod, 1 ile 6 arasında bir tam sayı döndürür, yani zarın herhangi bir yüzü olabilir.
Belirli Aralıklarda Ondalık Sayılar: uniform() Fonksiyonu
uniform(a, b) fonksiyonu, a ve b arasında rastgele bir ondalık sayı üretir. Bu, daha hassas hesaplamalar ve simülasyonlar için kullanılabilir.
import random
ondalik_sayi = random.uniform(1.5, 5.5)
print(f"1.5 ile 5.5 arasında rastgele ondalık sayı: {ondalik_sayi}")
Bu örnek, 1.5 ile 5.5 arasında bir ondalık sayı döndürür.
Rastgele Eleman Seçimi: choice() Fonksiyonu
choice() fonksiyonu, bir diziden rastgele bir eleman seçer. Bu, liste veya tuple gibi veri yapılarını kullanarak bir eleman seçmek için idealdir.
import random
renkler = ['kırmızı', 'mavi', 'yeşil', 'sarı']
rastgele_renk = random.choice(renkler)
print(f"Seçilen rastgele renk: {rastgele_renk}")
Bu kod, renkler listesinden rastgele bir renk seçer.
Liste Karıştırma: shuffle() Fonksiyonu
shuffle() fonksiyonu, bir listenin elemanlarını rastgele karıştırmak için kullanılır. Bu, kart oyunları veya benzeri karıştırma işlemleri için oldukça kullanışlıdır.
import random
kartlar = ['As', 'Kupa', 'Maça', 'Karo', 'Sinek']
random.shuffle(kartlar)
print(f"Karıştırılmış kartlar: {kartlar}")
Bu örnek, kartlar listesinin elemanlarını karıştırır ve karıştırılmış halini ekrana yazdırır.
Rastgele Eleman Seçimi: sample() ve choices() Fonksiyonları
•sample(population, k): Belirli bir popülasyondan, k sayıda benzersiz eleman seçer. Elemanlar tekrar etmez.
•choices(population, k): Belirli bir popülasyondan, k sayıda eleman seçer. Elemanlar tekrar edebilir.
import random
sayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Benzersiz 3 eleman seçer
benzersiz_ornek = random.sample(sayilar, 3)
print(f"Benzersiz örnek: {benzersiz_ornek}")
# Tekrarlı 3 eleman seçer
tekrarli_ornek = random.choices(sayilar, k=3)
print(f"Tekrarlı örnek: {tekrarli_ornek}")
Bu örnekte, sample() ve choices() fonksiyonlarının farklı kullanımlarını görebilirsiniz.
Tohumlama (Seed) ve Rastgelelik: seed() Fonksiyonu
seed() fonksiyonu, rastgele sayı üretimini kontrol etmek için kullanılır. Aynı tohum değeri ile başlatıldığında, rastgele sayı üretimi aynı sonucu verecektir. Bu, testler için öngörülebilir sonuçlar elde etmeyi sağlar.
import random
random.seed(10)
print(random.randint(1, 100))
print(random.randint(1, 100))
random.seed(10)
print(random.randint(1, 100))
print(random.randint(1, 100))
Komple Uygulama Örneği: Rastgele Bir Oyun
Aşağıdaki random modülünün çeşitli fonksiyonlarının kullanıldığı, kullanıcıdan yalnızca bir kez veri alınan bir oyun örneği verilmiştir. Bu oyunda, kullanıcıya kaç adet rastgele karakter üretmek istediği sorulur ve belirtilen sayıda karakterlerden oluşan bir dizin rastgele oluşturulur.
import random
import string
def rastgele_karakter_olusturucu():
# Kullanıcıdan karakter sayısını alıyoruz (yalnızca bir kez)
karakter_sayisi = int(input("Kaç karakterli bir dizin oluşturmak istersiniz? \n"))
# Rastgele karakterler için kullanılacak karakter havuzu
karakter_havuzu = string.ascii_letters + string.digits + string.punctuation
# Rastgele karakterleri seçiyoruz
rastgele_dizin = ''.join(random.choices(karakter_havuzu, k=karakter_sayisi))
print(f"{karakter_sayisi} karakterden oluşan rastgele dizin: {rastgele_dizin}")
rastgele_karakter_olusturucu()
Açıklama:
• string.ascii_letters küçük ve büyük harflerden oluşur.
• string.digits tüm rakamları içerir (0-9).
• string.punctuation ise noktalama işaretlerini içerir.
• random.choices() fonksiyonu, belirtilen k kadar rastgele eleman seçer.
Kullanıcıdan yalnızca bir kez karakter sayısı sorulur ve ardından istenilen uzunlukta rastgele bir dizin oluşturulur.
Bu tür bir uygulama, güvenli şifre oluşturucu veya doğrulama kodu üreticisi olarak da kullanılabilir.
Python'da random modülü, rastgele sayı üretimi ve veri yapılarından rastgele seçim yapmak için oldukça güçlü bir araçtır. Bu modülün sunduğu fonksiyonlar, oyun geliştirme, simülasyon ve veri analizi gibi alanlarda önemli rol oynar. Bu rehber ile random modülünün farklı işlevlerini öğrendiniz ve örneklerle pekiştirdiniz. Her bir işlevin ne zaman ve nasıl kullanılacağını anlamak, projelerinizde doğru rastgelelik çözümlerini uygulamanıza yardımcı olacaktır.