Python ile Programlama ‘Sayı Tahmin Oyunu’ # 2

Murat Kurtuluş
Three Arrows Security
4 min readJul 28, 2018

Merhaba sayın okurlarımız Python ile programlama yazı dizisinin ikinci yazısına hoş geldiniz. Bu yazımızda sayı tahmin uygulaması geliştireceğiz.
Sayı tahmin uygulamasını yaparken şu konulara değineceğiz:

  • Tip dönüşümleri
  • While döngü yapısı
  • if / elif / else koşul deyimleri
  • Karakter dizilerini biçimlendirmek

Geliştireceğimiz sayı tahmin uygulamasının çalışma mekanizmasını açıklayalım ilk olarak. Python’ı yüklerken gelen standart kütüphanede tanımlı random modülü ile uygulamamız 0 ile 100 arasındaki bir tam sayıyı rastgele seçecek. Sonrasında uygulama bizden bu sayıyı tahmin etmemizi isteyecek. Programımızın rastgele seçtiği sayıyı bulmaya çalışırken aynı zamanda program bize geri dönüşler verecek. Tahmin ettiğimiz sayı ile programın rastgele seçtiği sayı arasındaki duruma göre çok yüksek veyahut çok düşük
diye geri dönüşler olacak. İsterseniz kodu anlatacağım kısıma geçelim şimdi.

Python’da belirli işleri yaparken işimizi kolaylaştırmak için yazılmış fonksiyonlar vardır. Bu fonksiyonların bir arada durduğu yapıya modül denir.
Random modülü de bulunan birçok modülden yalnızca birisidir. Programımızı geliştirmeye random modülünü dahil ederek başlıyoruz. Python’da bir modülü dahil etmek için import ifadesi kullanılır. Programımızın üç ile altıncı satırları print() fonksiyonu ile bir başlık hazırlıyoruz. Bu kısmı bir önceki yazıdan hatırlarsınız.

Bir sonraki aşamada ise sayı adında bir değişken tanımlıyoruz. Bu değişkenin karşısındaki ifade bize 0 ile 100 arasında rastgele bir tam sayı seçecek ve sayı değişkenine atayacak. Bir alt satırda tahmin değişkeni tanımlıyoruz ve -1 değerini atıyoruz bunun nedenini birazdan anlayacaksınız. Daha sonra kullanıcıdan ismini soruyoruz ve isim değişkenine atıyoruz.

Program geliştirirken aynı kodları tekrar tekrar yazmak sıkıcıdır. Python’da bizi bu sıkıcılıktan kurtaracak ifadeler vardır. Bunlardan birisi de döngü yapılarıdır. Biz bu programı geliştirirken while döngü yapısını kullandık. While döngüleri bizim tanımladığımız şart tamamlanana kadar içinde bulunan kodları çalıştırır. Bizim örneğimizde ise doğru sayıyı tahmin
edene kadar programımız bize tuttuğu sayıyı soracak. Biz while döngüsünün çalışmasına başlaması için tahmin değişkenine -1 değerini vermiştik hatırlarsanız. Bu değeri vermemiş olsaydık while döngüsü çalışmayacaktı. Kullanıcı doğru sayıyı girdiğinde ise while döngüsü tamamlanmış olacak. Kodumuzun on üçüncü satırında while döngüsünün yanındaki ifade tahmin edilen sayı ile programın seçtiği sayı eşit olmadığı sürece altında bulunan kodları çalıştır demektedir. While döngüsünün içinde bulunan kodları inceleyeceğimiz bölüme geçelim.

Her programlama dilinde olduğu gibi Python’da da koşul deyimleri vardır. Bu koşul deyimleri sayesinde daha etkili programlar geliştirebiliriz. Python’da bulunan if/elif/else ifadeleri koşul deyimleridir. Gelin bunları bir örnek üzerinden anlatalım.

İlk olarak kullanıcıdan bir sayı girmesini istiyoruz ve bu sayıyı if/elif/else bloklarının içindeki deyimlere göre değerlendiriyoruz. İf deyimi eğer anlamına gelir. Yani if deyiminin yanında bulunan koşul doğru ise, bizim örneğimizde sayı > 0 ifadesi, program altında bulunan kod parçalarını çalıştırır. İf deyiminin yanında bulunan koşul yanlış ise program kodu okumaya devam eder ve bir alt satıra geçer. Elif deyimi ise if deyiminin çalışmadığı durumlarda yanında bulundan koşul doğru ise çalışır. Bizim örneğimizde elif deyimi kullanıcının girdiği sayının sıfır olup olmadığı durumu sorguluyor. Kullanıcı 0 girmiş ise kodumuz elif deyiminin
bir alt satırında bulunan print() fonksiyonunu çalıştıracaktır. Kullanıcı sıfır veya sıfırdan büyük bir sayı girmediği zaman ise else deyimi çalışacaktır. Else
deyimi koşul almaz. İf ve elif deyimlerinin çalışmadığı durumlarda çalışır. Örneğin kullanıcı negatif bir sayı girmiş olsun. O zaman programımız
‘Girdiğiniz sayı negatif bir tam sayıdır.’ çıktısını konsola yazdıracaktır.

Asıl kodumuza dönecek olursak, kullanıcı programın seçtiği sayıdan daha düşük bir sayı tahmin ederse ‘girdiğiniz sayı çok düşüktür’ çıktısı alacaktır. Ancak kullanıcı programın seçtiği sayıdan daha yüksek bir sayı tahmin ederse bu durumda programımız ‘girdiğiniz sayı çok yüksektir’ çıktısı verecektir. Kullanıcı doğru sayıyı tahmin ettiyse else deyiminin altında bulunan ‘harika iş kazandınız’ çıktısını alacaktır.

if/elif/else ifadelerinin altında bulunan print() fonksiyonlarının içinde bulunan format ifadesi ilginizi çekmiştir. format() metotu ile içine aldığı parametreleri karakter dizisinin içinde bulunan süslü parantezlerin içine yerleştirir. Bizim örneğimizde kullanıcının girdiği ismi ve tahmin ettiği sayıyı karakter dizisinin içine yazdırır. Kodumuzu çalıştırdığımızda aşağıdaki gibi bir çıktı alırız.

Bir yazının daha sonuna geldik. Okuduğunuz için teşekkürlerimi sunuyorum. İyi günler iyi çalışmalar efenim.

--

--

Murat Kurtuluş
Three Arrows Security

İzmir Katip Çelebi Üniversitesi Elektrik elektronik mühendisliği 1.sınıf