File: 8ball.py

8 Top'un arkasındaki fikir çok basit. Topa bir evet hayır sorusu soruyorsunuz ve o da size cevabı söylüyor.

Elbette, cevabın önceden hazırlanmış cevaplardan rastgele seçiliyor olması haricinde doğru cevabı söylüyor. :)


A real life 8-Ball

Sürekli olarak kullanıcıdan bir evet hayır sorusu bekleyen ve sonrasında da önceden hazırlanmış 5 cevaptan birini rastgele olarak seçen bir program yazın:

  • Şüphesiz.
  • Evet.
  • Daha sonra tekrar sorun.
  • Hayır.
  • Karel öyle düşünüyor.

Programın örnek bir çıktısını burada görebilirsiniz.

Ask a yes or no question: Will Ghana win the world cup?
only Karel knows

Ask a yes or no question: Is Karel married?
good question!

Ask a yes or no question: Is my real name Nick
Without a doubt

Ask a yes or no question: 8-Ball, are you using random numbers?
yes

Ask a yes or no question: 

Sonsuz döngü

Bu programın bir bölümünü sizin için yazdık (spesifik olarak, sürekli kullanıcı girişi isteyen sonsuz döngü bölümü). Size, soruları yukarıdaki 5 hazır cevapla yanıtlama işini bıraktık.

Aşağıda neler yazdığımıza bir göz atın. Bu kodu olduğu gibi çalıştırırsanız, bu program ne işe yarar? PyCharm'da 8ball.py dosyasını çalıştırarak deneyin! Mac'te iseniz Python3 8ball.py veya PC'deyseniz py 8ball.py yazarak programınızı PyCharm Terminalinde çalıştırabileceğinizi unutmayın.

def main():
    while True:
        input("Ask a yes or no question: ")

        # unutmayın, bu bir 'comment'
        # KODUNUZ BURADA BAŞLASIN


        # KODUNUZ BURADA BİTSİN

Sonsuz döngüden çıkmak

Bu program sonsuza dek çalışıyor! Sonsuza dek çalışan bir programdan çıkmak için, Terminal'deyken klavyenizdeki Ctrl-C tuşlarına basın. Böylece programı tekrar python3 runningsum.py veya py runningsum.py komutuyla çalıştırabilirsiniz.

Seçimler ve rastgele sayılar

5 cevap arasında rasgele seçim yapmanın bir yolu, her cevabı bir numara ile ilişkilendirmek ve Python'un rasgele sayı seçme yeteneğinden faydalanmaktır. Ardından, hangi sayının seçildiğine bağlı olarak, seçilen yanıtı yazdırmak için koşullu ifadeler (if,else) kullanabilirsiniz.

Rastgele bir tamsayı (integer) oluşturmak için aşağıdakileri yapabilirsiniz:

num = random.randint(min, max)

min and max, sırasıyla num değişkeninin alabileceği minimum ve maksimum tamsayılardır. Örneğin:

num = random.randint(10, 20)

num değişkenine 10 ile 20 arasında rastgele bir sayı kaydeder.

Bonus: ekleme

Mevcut programınız sonsuza dek çalışır. Kullanıcı hiçbir şey yazmadığında (yalnızca Enter tuşuna bastığında), şu anda True olan while döngüsü koşulunu nasıl değiştirirsiniz?

İpucu: İşte size kullanıcı hiçbir şey yazdığında (yalnızca Enter tuşuna basarsa) ekrana "Hiçbir şey girilmedi." yazan bir program. Bu program aksi takdirde program kullanıcı girişini yazdırır. Benzer bir fikri nasıl kullanabilir ve while döngüsüne uygulayabilirsiniz?

statement = input("Bir şeyler yazın: ")
if statement == "":
    print("Hiçbir şey girilmedi.")
else:
    print(statement)