Çözüldü Python kodundaki hata ne?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

mehanil

Centipat
Katılım
23 Temmuz 2021
Mesajlar
100
Python:
import random
def g():
    rn = random.randint(0,9)
    b = int(input("Aklımdaki rakamı tahmin et."))
    c = int(b)
    if c == rn:
        print("Doğru!")
        bd = input(str(print("Bir daha? 1 = evet / 2 = hayır")))
        bd2 = int(bd)
        if bd2 == 1:
            g()
        if bd2 == 2:
            print("Hoşçakal!")
            print("—Oyun sonlandırıldı—")
            while True:
                pass
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")
            while True:
                pass
    else:
        print("Maalesef! Cevap ", rn, " olmalıydı")
        bd = input(str(print("Bir daha? 1 = evet / 2 = hayır")))
        bd2 = int(bd)
        if bd2 == 1:
         g()
        if bd2 == 2:
            print("Hoşçakal!")
            print("—Oyun sonlandırıldı—")
            while True:
                pass
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")
            while True:
                pass

g()

Kodum sorunsuz çalışıyor ancak Her seferinde sayı girme kısmında None yazıyor. Sebebi ne olabilir?
 
Çözüm
Python:
import random
def g():
    rn = random.randint(0,9)
    b = int(input("Aklımdaki rakamı tahmin et: "))
    if b == rn:
        print("Doğru!")
        bd = int(input("Bir daha? 1 = evet / 2 = hayır: "))
        if bd == 1:
            g()
        if bd == 2:
            print("Hoşçakal!")
            print("—Oyun sonlandırıldı—")
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")
    else:
        print("Maalesef! Cevap {0} olmalıydı".format(rn))
        bd = int(input("Bir daha? 1 = evet / 2 = hayır: "))
        if bd == 1:
            g()
        if bd == 2:
            print("Hoşçakal!")
            print("Oyun sonlandırıldı")
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")

g()

Bazı yerlerde programı gereksiz yere sonsuz döngüye sokmuşsunuz, o kısımları sildim.
Ek olarak input fonksiyonun içine tekrardan print yazmanıza gerek yok. O yüzden None yazıyor.
Python:
import random
def g():
    rn = random.randint(0,9)
    b = int(input("Aklımdaki rakamı tahmin et: "))
    if b == rn:
        print("Doğru!")
        bd = int(input("Bir daha? 1 = evet / 2 = hayır: "))
        if bd == 1:
            g()
        if bd == 2:
            print("Hoşçakal!")
            print("—Oyun sonlandırıldı—")
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")
    else:
        print("Maalesef! Cevap {0} olmalıydı".format(rn))
        bd = int(input("Bir daha? 1 = evet / 2 = hayır: "))
        if bd == 1:
            g()
        if bd == 2:
            print("Hoşçakal!")
            print("Oyun sonlandırıldı")
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")

g()

Bazı yerlerde programı gereksiz yere sonsuz döngüye sokmuşsunuz, o kısımları sildim.
Ek olarak input fonksiyonun içine tekrardan print yazmanıza gerek yok. O yüzden None yazıyor.
 
Son düzenleme:
Çözüm
Python:
import random
def g():
    rn = random.randint(0,9)
    b = int(input("Aklımdaki rakamı tahmin et: "))
    if b == rn:
        print("Doğru!")
        bd = int(input("Bir daha? 1 = evet / 2 = hayır: "))
        if bd == 1:
            g()
        if bd == 2:
            print("Hoşçakal!")
            print("—Oyun sonlandırıldı—")
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")
    else:
        print("Maalesef! Cevap {0} olmalıydı".format(rn))
        bd = int(input("Bir daha? 1 = evet / 2 = hayır: "))
        if bd == 1:
            g()
        if bd == 2:
            print("Hoşçakal!")
            print("Oyun sonlandırıldı")
        else:
            print("Geçerli bir rakam girmediğin için oyun sonlandırıldı.")

g()

Bazı yerlerde programı gereksiz yere sonsuz döngüye sokmuşsunuz, o kısımları sildim.
Ek olarak input fonksiyonun içine tekrardan print yazmanıza gerek yok. O yüzden None yazıyor.
Teşekkürler!
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı