Hazırlayanlar: Chris Piech, with modifications by Lisa Yan
Çevirenler: Serhat Arslan, Ceren Kocaoğullar
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:
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:
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
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.
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.
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)