Modüller # 7 - Python Dersleri (Tutorials)

in #zzan5 years ago

kapak.jpg

Merhabalar

Python programlama derslerinin bu bölümünde modülleri kullanabileceğimiz sayı tahmin oyunu hazırlayacağız. Böylelikle hem modüllerin kullanımı göreceğiz hem de kod yazma becerimizi artıracağız.

Kod kısmına gelmeden önce her zamanki gibi algoritması üzerine konuşalım.

Sayı tahmin oyunundaki tahmin edilecek sayı, rastgele üretilen random bir sayı olacaktır. Sonrasında kullanıcıdan bir sayı girmesini istenilecektir.

Kullanıcı her sayı girdiğinde girilen sayı, rastgele sayı ile karşılaştırılıp kullanıcıya yüksek değer giriniz veya düşük değer giriniz şeklinde talimat verecektir.

Tabi kullanıcı bu tahmin olayını sonsuza kadar oynayamayacağından oyunda kullanıcıya bir tahmin hakkı verilecektir. Eğer bu tahmin hakkını doldurursa oyun sonlandırılacaktır.

Oyunun sonlandırılması iki durumda olacaktır:

  • Kişinin doğru tahmin etmesi
  • Tahmin hakkını doldurması

Algoritma genel olarak bu temeller üzerine kuruldu. Şimdi de kod kısmına geçelim :

Uygulamanın başındaki

from random import randint
from time import sleep

kodları ile programda kullanacağımız randint() ve sleep() fonksiyonlarını projemize import ettik. İkinci import yöntemini kullandığımız için kod kısmında her defasında modül ismini yazmamız gerek kalmamıştır.

tahmin_hakki = 4

kodu ile kullancıya vereceğimiz tahmin hakkını belirlemiş olduk.

sayi = randint(1,15)

kodu ile de tahmin edilmesi gereken random sayımızı üretip sayı değişkenimize atadık..

randint() fonksiyonu başlangıcı ve bitişi verilen değerler arasında (değerler dahil) rastgele sayı üretmek için kullanılır.

print("Doğru sayı :",sayi,"\n")

koduna gerek yoktur. Sadece kontrol amaçlı konulmuştur.

def sorgulaniyor():
print("\nSorgulanıyor...")
sleep(1)

kodu ile sorgulaniyor adında bir fonksiyon tanımladık. Kullanıcı her değer girdiğinde kullanıcıya "Sorgulanıyor" mesajı vermek ver 1 sn bekletmek için kullanılacaktır.

sleep() fonksiyonu içerisine aldığı sayısal değer kadar saniye gecikmesi yapmaktadır.

Şimdi gelelim asıl önemli kısıma.

while() döngüsünün çalışma koşulu tahmin_hakki değişkeninin sıfırdan farklı bir değer olmasıdır. Yani tahmin_hakki sıfır olmadığı sürece döngü devam edecektir. Yani en fazla 4 kez dönecektir.

Döngünün içerisinde

tahmin = int(input("Lütfen 1-15 arasında bir sayı giriniz : "))

kodu ile kullanıcıdan 1-15 arası bir değer girmesi istenmiştir. Girilen değer int() metodu ile integer değişkene çevrilmiş ve tahmin değişkenine atanmıştır.

Sonrasında gelen if-elif-else yapısında ise bu tahmin değeri ile rastgele üretilen sayi değeri karşılaştırılmıştır.

Eğer kullanıcı büyük bir değer girerse ilk if() yapısına girilecek ve kullanıcı 1 sn bekletildikten sonra "Daha düşük bir sayı giriniz" şeklinde mesaj verilecektir. if bloğundan çıkmadan önce de tahmin_hakki değeri bir düşürülecektir.

elif bloğu için de durum aynıdır. Kullanıcı sayi değerinden küçük değer tahmin ederse kullanıcı sorgulaniyor() fonksiyonu ile 1 sn bekletildikten sonra "Daha yüksek bir sayı giriniz" mesajı ile karşılaşacak ve sonrasında tahmin_hakki değeri 1 düşürülecektir.

Eğer kullanıcı doğru tahmin etmişse en sondaki else bloğuna girecek ve "Tebrikler. Doğru tahmin ettiniz", "Program sonlandırılıyor." mesajını aldıktan sonra

break

anahtar kelimesi ile döngü kırılıp program sonlandırılacaktır.

En sondaki if yapısında

Kullanıcının son bir tahmin hakkı kaldığında kullanıcıya "Son 1 hakkınız kaldı..." mesajı verilecektir. elif kısmında ise tahmin hakkı bittiğinde kullanıcıya verilecek mesaj bulunmaktadır.

Şimdi de uygulamamızı çalıştıralım :

  1. İlk olarak doğru tahminde bulunamadığımızı varsayalım :

2.Şimdi de doğru tahminde bulunduğumuzu varsayalım :

Görüldüğü gibi uygulamamız çalışmaktadır.Anlamadığınız noktaları yorum panelini kullanarak sorabilirsiniz.

Umarım faydalı bir çalışma olmuştur.

Teşekkürler.

yesilayrca.png

Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me

Sort:  

This post is supported by $0.17 @tipU upvote funded by @thales7 :)
@tipU voting service: instant, profitable upvotes + profit sharing tokens | For investors.

Teşekkür ederim @thales7 hocam, saygılar

Rica ederim. Yazılarınız türkçe olduğundan "tr" tag ini kullanmanızı tavsiye ederim. Böylece ana dili türkçe olanlara daha rahat ulaşabilirsiniz. Yinede siz bilirsiniz tabi. Kolay gelsin.

Posted using Partiko Android

Teşekkür ederim tavsiye eve ilginiz için bundan sonraki yazımda kullanacağım inşallah.

içerik ilgimi çekti, sayı tahmin oyunlarını küçükken çok oynardık ve aslında şu zamanda da ara ara oynarız:)
ama pek tutturamam sayıları :/

ellerine sağlık @elektroyazilim

Sonunda ilginizi çekebildiğime çok sevindim :) Aslında şanslısınız tuttturmanızı beklerdim, buna şaşırdım. Teşekkür ederim değerli yorumunuz için su hocam

Congratulations @elektroyazilim! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 900 upvotes. Your next target is to reach 1000 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

You can upvote this notification to help all Steem users. Learn how here!

You got a 98.45% upvote from @minnowvotes courtesy of @elektroyazilim!

Coin Marketplace

STEEM 0.16
TRX 0.13
JST 0.026
BTC 57142.47
ETH 2437.81
USDT 1.00
SBD 2.39