Ana sayfa » Python’da Random Modülü Nedir? Nasıl Kullanılır?
Python

Python’da Random Modülü Nedir? Nasıl Kullanılır?

python-random-modülü-nedir

Python’da Random Modülü

Python programlama dilinde büyük bir öneme sahip olan modüller, bizlere programcılık hayatımızda bir hayli fayda sağlayarak vazgeçilmezlerimiz olmuşlardır. Modüllerin bizlere sağladığı faydalarından bahsetmeden önce tanımını yapmak daha doğru olacaktır. Modül, bazı problem ve işlemleri kolaylıkla yerine getirmemizi sağlayan birçok fonksiyon ve niteliklerden oluşmuş parçalardır. Mesela sistemimizdeki dosyalar ile ilgili işlem yapacağız, bu durumda os modülü bizim için biçilmiş kaftandır. Bu modülün içindeki hazır fonksiyonları kullanarak saatlerimizi alacak bir işlemi saniyeler içinde yapabiliriz. Bu bilgiler ışığında yazının konusu olan random modülü ile de programcılık hayatımızda sıklıkla kullandığımız rastgele sayı üretmek gibi işlemleri kolaylıkla yapabiliriz. Random modülü ile yapacağımız işlemlerin geçerli olabilmesi için öncelikle programımızın içine aktarmamız gerekiyor. Bunun için;

import random

komutunu yazmamız gerekiyor. Bu işlemi yaptıktan sonra random modülünün bize sağladığı işlevleri kullanabiliriz.

Random Modülü’nün Fonksiyonları

random()

Random modülü konumuzun ilk fonksiyonu olan random() bizlere 0 ile 1 arasında rastgele ondalıklı bir sayı üretmemizi sağlıyor. Örnek verecek olursak;

x = random.random()
print(x)
#Çıktı
0.6872224402836707

Gördüğünüz gibi random() fonksiyonu farklı bir sayı üretti. Bunu kendiniz de deneyerek görebilirsiniz.

randint()

Random modülünün belkide en çok kullanılan fonksiyonu olan randint() fonksiyonu ile istediğiniz aralıkta tam sayı üretebilirsiniz. Bu fonksiyonumuz iki tane parametre alır, randint(alt_deger,üst_deger) şeklinde. Mesele 30 ile 80 arasında rastgele bir sayı üretmek istersek yazacağımız kod;

x = random.randint(30,80)
print(x)
#Çıktı
42

Gördüğünüz gibi randint() fonksiyonu ile belirtilen sınırlar eşliğinde rastgele bir sayı elde ettik. Bu fonksiyonumuz ile ilgili dikkat etmemiz gereken nokta; belirtilen sınırların üretilecek sayıya dahil olmasıdır. Yani randint(30,80) fonksiyonu bize 30 ve 80 dahil rastgele bir sayı üretir. Bu mevzuya randrange() adlı fonksiyonu anlatırken de değineceğim.

uniform()

Biraz önce gördüğümüz randint() fonksiyonu ile belirtilen aralıkta rastgele tam sayı üretibileceğimizi artık biliyoruz. Peki python da rastgele ondalıklı sayı üretmek istiyorsak ne yapmamız gerekiyor ? İşte burada imdadımıza uniform() adlı fonksiyonumuz yetişiyor. Bu fonksiyonumuz da randint() fonksiyonunda olduğu gibi iki parametre alıyor ve bu sınırlara göre rastgele ondalıklı bir sayı üretiyor. Hemen bir örnek verelim.

X = random.uniform(0,3)
print(x)
#Çıktı
1.3985094537695724
y = random.uniform(1.8,4.5)
print(y)
#çıktı
3.3927937167614184

Yukarıdaki örneğimizde de gördüğümüz gibi fonksiyonumuza ister tam sayı olarak parametre girin isterse ondalıklı parametre girin, uniform() bir sıkıntı çıkartmayacaktır ve isteğiniz olan ondalıklı sayıyı size verecektir.

randrange()

Bu fonksiyonumuz aynı randint() fonksiyonunda olduğu gibi belirtilen sınırlar eşliğinde rastgele tamsayı üretmemizi sağlar. İyi de randint() fonksiyonu varken aynı işlevi gören ikinci bir fonksiyona ne gerek var? Şeklinde bir soru aklınıza gelmiş olabilir. Aslıdan random modülünde aynı işlevi gören iki farklı fonksiyonun olmasının nedeni işleyişlerinin birbirinden farklı olmasından kaynaklanıyor. Bu farklılıklara bakacak olursak;

  • randrange() modülü tek parametre alabilir ama randint() modülü tek parametre almaz.
  • randrange() fonksiyonu üst sınırı üretilecek rastgele sayıya dahil etmez. Buradan ne demek istiyoruz; mesela random.randrange(0,30) fonksiyonu 0 dahil 30’a kadar sayı üretir, asla 30 sayısını üretmez. Yani üretilecek maksimum sayı 29’dur. Aynı değerleri eğer randint() fonksiyonunda kullansaydık. 30 olan üst sınır üretilecek rastgele sayılara dahil edilirdi. Bu iki fonksiyon arasındaki en önemli fark bence budur. Programlarımızı yazarken bu ayrıma dikkat etmeliyiz, yoksa programlarımız oluşacak sayılara bağlı olarak düzgün çalışmayabilir.

choice()

Random modülümüzün choice() adlı fonksiyonu ile karakter dizileri ve listelerden rastgele bir değer çekebiliyoruz. Hemen örneğimizle yaptığımız tanımı pekiştirelim.

liste = [1,3,4,"tabak"]
print(random.choice(liste))
#Çıktı
3

gördüğünüz gibi choice() fonksiyonumuz liste adı listemizden rastgele bir değer olarak 3’ü çekti ve ekrana bastı. Buna benzer bir örneği karakter dizilerinde de yapabiliriz. Aşağıdaki örneği inceleyelim.

karakterler = "python'da random modülü"
print(random.choice(karakterler))
#Çıktı
'd'

shuffle()

Random modülü ile ilgili son olarak işleyeceğimiz modül shuffle() modülüdür. Bu modül bizlere karakter dizilerini ve listeleri rastgele karıştırmamızı, bir başka değişle karmamızı sağlar. Örnek;

liste = [1,3,4,”tabak”]
random.shuffle(liste)
print(liste)
#Çıktı
[4, 3, 'tabak', 1]

örnekte de gördüğümüz gibi fonksiyonumuz listemizi rastgele bir şekilde karıştırmış. Bu işlemi yaptıktan sonra shuffle() adlı fonksiyonumuz orjinal listemizin kendisinde değişiklik yapar. Artık eski listemize ulaşamayız, çünkü içeriği kalıcı olarak değiştirilmiştir. Eğer listenizin veya karakter dizinizin orjinalini korumak istiyorsanız bu fonksiyonu kullanırken dikkatli olmanızı öneririm. Bu duruma çözüm olarak orjinal listenizin veya karakter dizinizin bir yedeğini almak yerinde olacaktır.

Bonus: Kendi choice() Fonksiyonumuzu Yazalım

Ezberden okumak veya yazmak kolay. Bir yazılımcı olarak bu fonksiyonların nasıl çalıştığını düşünmek sizlere çok ama çok şey katacaktır. Her zaman hayatta karşımıza hazır modüller, kütüphaneler veya fonksiyonlar çıkmayabilir. Çıksa dahi hazıra alışmak sizi bir hayli köreltir. Bu sebepten dolayı ara sıra kendi fonksiyonlarımızı, sınıflarımızı, modüllerimizi yazmamız bizleri diri tutacaktır. Bu bağlamda bu yazının başrolündeki random modülünün choice fonksiyonunun çalışma mantığını düşünerekten aynı işlevi gören bir fonksiyon yazacağım. Örnek olarak ben kendime bu fonksiyonu seçtim. Sizlerinde diğer fonksiyonlar üzerinde düşünmenizi ve seçtiğiniz fonksiyonu kendinizin yazmasını istiyorum. Şimdi aşağıdaki fonksiyonu inceleyelim ve choice fonksiyonun çalışma prensibini anlamaya çalışalım.

import random
def mychoice():
sayilar = [1,4,6,7,12]
rastgele = random.randint(0,len(sayilar))
print(sayilar[rastgele])
mychoice()
  • Öncelikle import random diyerek modülümüzü içeri aktardık.
  • Sonrasında kendi fonksiyonumuzu tanımladık. Ben bu örnekte fonksiyonuma mychoice adını verdim.
  • Bir sonraki adım olarak bir liste oluşturduk.
  • Şimdiki adım ise en önemli kısım. Yine önceden gördüğümüz randint() fonksiyonu ile sayilar listesinin uzunluğu kadar(len(sayilar) özelliğini kullanarak) rastgele bir sayı üretip rastgele degerine atadık.
  • En son adımda ise sayilar listesinin boyutu göz önünde tutularak üretilen rastgele sayıya göre listemizden bir değeri ekrana bastık.

Evet genel olarak programcılık hayatımızda birçok kez kullandığımız random modülünü incelemeye çalıştık. Sizlerde artık programcılık hayatınızda Python da rastgele bir sayı üretmek, liste veya karakter dizilerini karmak, listelerden ve karakter dizilerinden rastgele bir değer çekmek gibi işlemleri rahatlıkla yapabilirsiniz.

Yazar Hakkında

Hakan İlbiz

Siber güvenlik, linux, programlama ve network gibi bilgisayar bilimlerini kapsayan alanlarda yaptığı çalışmalardan edindiği tecrübeleri, kurucusu olduğu kodputer.com adlı web sitesinde okurlarına sunan ve bundan büyük bir haz duyan Sakarya Üniversitesi Bilgisayar Mühendisliği öğrencisi.

2 Comments

Yorum Yazmak İçin Tıkla