Python kodundaki hata nedir?

qualfy

Hectopat
Katılım
3 Aralık 2020
Mesajlar
506
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Merhaba, normalde Python'la ilgimi pek çekmiyor fakat bu dilde bir proje yapmam gerektiğinden dilin syntax yapısını az çok öğrendim. Projenin mantığını tamamladım fakat while döngüsüyle ilgili bir problem yaşıyorum. Programda sayıyı bulma kısmında bir problem yaşamıyorum fakat son kısımda durdur-devam kısmında sonsuz döngüye giriyor, gerekli inputu almasına rağmen yanlış diyor. Hatam nedir veya yanlışımı çözmek için nasıl bir yol izleyebilirim?

Python:
tahminrekoru=2
tahminsayisi=0
tahminedileceksayi=8
gecicitahmin=0
devamdurumu="e"

while devamdurumu == "e" or devamdurumu == "E":

 while gecicitahmin != tahminedileceksayi:
 gecicitahmin=int(input("Tahmin ettiginiz sayiyi giriniz :"))
 if tahminedileceksayi > gecicitahmin:
 print("Tahmin ettiginiz sayi olmasi gerekenden kucuktur.\n")
 elif gecicitahmin > tahminedileceksayi:
 print("Tahmin ettiginiz sayi olmasi gerekenden buyuktur.")
 if tahminsayisi < tahminrekoru:
 tahminrekoru=tahminsayisi
 print("Tebrikler,tahmin rekorunu kirdiniz.")
 elif tahminsayisi == tahminrekoru:
 print("Tebrikler,tahmin rekoruyla ayni sayida tahminle sayiyi buldunuz.")
print("Tahmininiz dogrudur.\n")
print("Yapmis oldugunuz toplam tahmin:" ,tahminsayisi,"\n")
print("Bu programda yapilmis tahmin rekoru : ",tahminrekoru,"\n")
print("----------------------------------------------------\n")
devamdurumu = str(input("Devam etmek icin e/E , programi sonlandirmak icin h/H girisi yapiniz."))
while devamdurumu !="e" or devamdurumu !="E" or devamdurumu !="h" or devamdurumu !="H":
 devamdurumu = input("Gecersiz giris yaptiniz,gecerli bir giris yapiniz.")

print("Program sonlanmistir.")
 
Son düzenleyen: Moderatör:
En son döngüde break kullanman lazım hocam. Koşul sağlanırsa döngü bitsin.
 
Dediğiniz şeyi yaptım fakat bu sefer de "e" girince de program sonlanıyor.
Şuna benzer bir mantıkta olması lazım.

Dediğiniz şeyi yaptım fakat bu sefer de "e" girince de program sonlanıyor.
Python:
tahminrekoru=2
tahminsayisi=0
tahminedileceksayi=8
gecicitahmin=0
devamdurumu="e"

while devamdurumu == 'e':
        gecicitahmin=int(input("Tahmin ettiginiz sayiyi giriniz :"))
        if tahminedileceksayi > gecicitahmin:
            print("Tahmin ettiginiz sayi olmasi gerekenden kucuktur.\n")
        elif gecicitahmin > tahminedileceksayi:
            print("Tahmin ettiginiz sayi olmasi gerekenden buyuktur.")
        if tahminsayisi < tahminrekoru:
            tahminrekoru=tahminsayisi
            print("Tebrikler,tahmin rekorunu kirdiniz.")
        elif tahminsayisi == tahminrekoru:
            print("Tebrikler,tahmin rekoruyla ayni sayida tahminle sayiyi buldunuz.")
            print("Tahmininiz dogrudur.\n")
            print("Yapmis oldugunuz toplam tahmin:" ,tahminsayisi,"\n")
            print("Bu programda yapilmis tahmin rekoru : ",tahminrekoru,"\n")
            print("----------------------------------------------------\n")

        while True:
            devamdurumu = str(input("Devam etmek icin e/E , programi sonlandirmak icin h/H girisi yapiniz."))

            if devamdurumu == 'h' or devamdurumu == 'H':
                break
            if devamdurumu == 'e' or devamdurumu == 'E':
                break
            else:
                print("Gecersiz giris yaptiniz,gecerli bir giris yapiniz.")
                continue
 
Son düzenleme:
Kodu düzenledim ve sanırım istediğiniz şu şekilde

Python:
tahminrekoru=2
tahminsayisi=0
tahminedileceksayi=8
gecicitahmin=0
devamdurumu="e"

while devamdurumu == "e" or devamdurumu == "E":

    gecicitahmin=int(input("Tahmin ettiginiz sayiyi giriniz :"))

    if tahminedileceksayi > gecicitahmin:
        print("Tahmin ettiginiz sayi olmasi gerekenden kucuktur.\n")
        tahminsayisi = tahminsayisi+1
   
    elif gecicitahmin > tahminedileceksayi:
        print("Tahmin ettiginiz sayi olmasi gerekenden buyuktur.\n")
        tahminsayisi = tahminsayisi+1
   
   
   
    elif gecicitahmin == tahminedileceksayi:
        print("Tahmininiz doğrudur.")
        if tahminsayisi < tahminrekoru:
            tahminrekoru=tahminsayisi
            print("Tebrikler,tahmin rekorunu kirdiniz.")
            print("Yeni Rekor: ", tahminrekoru)

        elif tahminsayisi == tahminrekoru:
            print("Tebrikler,tahmin rekoruyla ayni sayida tahminle sayiyi buldunuz.")
            print("Yapmis oldugunuz toplam tahmin: " ,tahminsayisi)
            print("Bu programda yapilmis tahmin rekoru : ",tahminrekoru)
            print("----------------------------------------------------")
   
        devamdurumu = str(input("Devam etmek icin e/E , programi sonlandirmak icin h/H girisi yapiniz."))

        if devamdurumu == "e" or devamdurumu == "E":
            tahminsayisi = 0
            continue
        elif devamdurumu == "h" or devamdurumu == "H":
            print("Program sonlanmistir.")
            break
        else:
            print("Geçerwsiz giriş yaptınız, geçerli bir giris yapınız.")
 
Mesajı güncelledi hocam bir de böyle deneyin ve yukarıdaki arkadaşın yazdığını.

Python:
tahminrekoru=2
tahminsayisi=0
tahminedileceksayi=8
gecicitahmin=0
devamdurumu="e"

while devamdurumu == 'e':
        gecicitahmin=int(input("Tahmin ettiginiz sayiyi giriniz :"))
        if tahminedileceksayi > gecicitahmin:
            print("Tahmin ettiginiz sayi olmasi gerekenden kucuktur.\n")
        elif gecicitahmin > tahminedileceksayi:
            print("Tahmin ettiginiz sayi olmasi gerekenden buyuktur.")
        if tahminsayisi < tahminrekoru:
            tahminrekoru=tahminsayisi
            print("Tebrikler,tahmin rekorunu kirdiniz.")
        elif tahminsayisi == tahminrekoru:
            print("Tebrikler,tahmin rekoruyla ayni sayida tahminle sayiyi buldunuz.")
            print("Tahmininiz dogrudur.\n")
            print("Yapmis oldugunuz toplam tahmin:" ,tahminsayisi,"\n")
            print("Bu programda yapilmis tahmin rekoru : ",tahminrekoru,"\n")
            print("----------------------------------------------------\n")

        while True:
            devamdurumu = str(input("Devam etmek icin e/E , programi sonlandirmak icin h/H girisi yapiniz."))

            if devamdurumu == 'h' or devamdurumu == 'H':
                break
            if devamdurumu == 'e' or devamdurumu == 'E':
                break
            else:
                print("Gecersiz giris yaptiniz,gecerli bir giris yapiniz.")
                continue
 

Yeni konular

Geri
Yukarı