Çözüldü Python'da tahmin algoritmasında mantıksal hata

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
14 Temmuz 2021
Mesajlar
13
Daha fazla  
Cinsiyet
Erkek
Bu arada internet üzerinde repl.it kullanarak yaptım, sorun onda mı? Ayrıca aranan sayıyı yazdırmamın nedeni size mantıksal hatayı göstermek.


Python:
import random

sayi=random.randint(1,10)

say=0



while True:

  print(sayi)

  soru=input("1 ile 10 arasında bir sayı tahmin edin: ")

  s=soru

  say+=1

  if str(s)==str(sayi):

    print("BRAVO! ARANAN SAYIYI {} ADIMDA BULDUN".format(say))

    break

 

  elif str(s)>str(sayi):

    print("GİRİLEN SAYI ARANANDAN BÜYÜK!")

 

  else:

    print("GİRİLEN SAYI ARANANDAN KÜÇÜK")



Merhabalar. Python kullanarak basit bir sayı tahmiin oyunu yaptım(yapmaya çalıştım :D) fakat konsol kısmında saçma bi hata alıyorum:



8

1 ile 10 arasında bir sayı tahmin edin: 7

GİRİLEN SAYI ARANANDAN KÜÇÜK

8

1 ile 10 arasında bir sayı tahmin edin: 9

GİRİLEN SAYI ARANANDAN BÜYÜK!

8

1 ile 10 arasında bir sayı tahmin edin: 1

GİRİLEN SAYI ARANANDAN KÜÇÜK

8

1 ile 10 arasında bir sayı tahmin edin:

GİRİLEN SAYI ARANANDAN KÜÇÜK

8

1 ile 10 arasında bir sayı tahmin edin: 10

GİRİLEN SAYI ARANANDAN KÜÇÜK
 
Son düzenleyen: Moderatör:
27. satıra dikkat edin. Integer değerlere sahip verileri string'e çevirip karşılaştırma operatörü kullanmışsınız. Yazılarla yazıları karşılaştıramayız sonuçta, str() fonksiyonunu silin ve bir daha deneyin. :)

19. satırdaki karşılaştırmada da aynısını uygulamanız daha sağlıklı olacaktır.
 
27. satıra dikkat edin. Integer değerlere sahip verileri string'e çevirip karşılaştırma operatörü kullanmışsınız. Yazılarla yazıları karşılaştıramayız sonuçta, str() fonksiyonunu silin ve bir daha deneyin. :)

19. satırdaki karşılaştırmada da aynısını uygulamanız daha sağlıklı olacaktır.
27. satıra dikkat edin. Integer değerlere sahip verileri string'e çevirip karşılaştırma operatörü kullanmışsınız. Yazılarla yazıları karşılaştıramayız sonuçta, str() fonksiyonunu silin ve bir daha deneyin. :)

19. satırdaki karşılaştırmada da aynısını uygulamanız daha sağlıklı olacaktır.
teşekkürler ama str fonksiyonunu kaldırınca integer ve stringi karşılaştırmazsın diyor
Pardon fakat anlayamadım?
console kısmında dikkatli bakarsanız değerden büyük girmeme rağmen küçük, küçük girmeme rağmen büyük diyor
 
Haklısınız. Input aldığınız "soru"/"s" değişkeni string olarak kaydediliyor. Bu değişkenin üzerinde int() fonksiyonunu kullanıp yeniden deneyebilirsiniz.

Teşekkür ederim. int() fonksiyonunu kullanınca sıkıntı çıkmıyor.aslında str() kullanınca da çoğunlukla doğru çalışıyor ama 10'dan büyük sayı girince hata oluyor, büyüğe küçük diyor yani.
 
Son düzenleyen: Moderatör:

Yeni konular

Geri
Yukarı