Anasayfa
/
Teknoloji
/
python dilinde kulanıcıya her seferde farklı bölme sorusu soran ve cevap doğru/yanlış bilgisini kullanıcıya geri bildirim

Soru

python dilinde kulanıcıya her seferde farklı bölme sorusu soran ve cevap doğru/yanlış bilgisini kullanıcıya geri bildirim veren programı yazınız

Çözüm

4.6 (339 Oylar)
Teoman
Uzman doğrulaması
Profesyonel · 6 yıl öğretmeni

Cevap

Verilen Python kodlu örnekte birkaç hata bulunmaktadır. İlk olarak, bölme işleminin sonucu genellikle ondalıklı bir sayı olacağından `answer.isdigit()` ve `int(answer) == x / y` kullanımı hatalı olacaktır. Bunun yerine, kullanıcıdan alınan cevabın ondalıklı sayı olup olmadığını kontrol eden ve `float` türüne çeviren bir yaklaşım kullanmak daha doğru olur. Ayrıca, bölme işleminin sonucu ondalıklı bir sayı olduğunda, sonuç doğrularken bir yuvarlama ya da tolerans kullanmak gerekebilir çünkü kullanıcı ondalıklı kısmı farklı olarak girebilir. İşte düzeltilmiş ve optimize edilmiş kod:```pythonimport random# Programı durdurma durumuna kadar devam ettiren döngüwhile True: # Rasgele sayılar üretilerek bölme sorusu oluşturulur dividend = random.randint(1, 10) divisor = random.randint(1, 10) # Kullanıcıya soru sorulur try: # float() kullanarak cevabı ondalıklı sayıya çevirebiliriz user_answer = float(input(f"{dividend} bölü {divisor} = ")) # Gerçek ve kullanıcı cevabını karşılaştırma # round() fonksiyonu ile iki ondalıklı bastaki doğrulukla karşılaştırma yapılır if round(dividend / divisor, 2) == round(user_answer, 2): print("Doğru cevap!") else: print(f"Yanlış cevap! Doğru cevap: {round(dividend / divisor, 2)}") except ValueError: print("Lütfen geçerli bir sayı girin.") # Kullanıcıdan bir daha denemek isteyip istemediği sorulur continue_prompt = input("Bir daha denemek ister misin? (evet/hayır): ") if continue_prompt.lower() != 'evet': break```Bu kodda;- `input()` ile kullanıcıdan cevap alınır ve `float()` fonksiyonu ile ondalıklı sayıya çevrilir.- `round()` fonksiyonu ile hem gerçek sonuç hem de kullanıcı tarafından girilen cevap iki ondalıklı basamakta yuvarlanır ve karşılaştırılır.- Kullanıcının girdisi geçerli bir sayı değilse `ValueError` yakalanır ve doğru giriş yapılması istenir.- Kullanıcıya programı durdurmak isteyip istemediği sorulur.Bu kod parçacığı, verilen gereklilikleri karşılayacak ve kullanıcıya bölme işlemi sorularını sormalarını, cevaplarını kontrol etmelerini, ve doğru/yanlış geri bildirim veren bir program olarak çalışacaktır.