Çözüldü Python if kodu hata veriyor

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

William Crusader

Hectopat
Katılım
11 Kasım 2020
Mesajlar
5.359
Makaleler
1
Çözümler
15
Daha fazla  
Cinsiyet
Erkek
Meslek
Yok
Merhaba. Yaptığım kodda kullanıcıya iki soru sorup, soruları doğru cevaplayıp cevaplamadığını belirtmek istedim. Ve eğer kullanıcı soruları doğru cevaplarsa sorun çıkmıyor. Fakat ilk soruyu yanlış yaparsa şu sorun çıkıyor:
Traceback (most recent call last):
File "c:\Users\Admin\Desktop\ilk proje.py", line 188, in <module>
if answer2 > 134:
NameError: name 'answer2' is not defined.
Bunu nasıl düzelteceğim?
Kod:
answer1 = int(input("Welcome to our Exam! What is 8+1? ")) if answer1 > 9: print ("Wrong") elif answer1 < 9: print ("Wrong") elif answer1 == 9: print ("Correct") if answer1 == 9: answer2 = int(input("Question 2: Whats 72+42? ")) if answer2 > 134: print ("Wrong") elif answer2 < 134: print ("Wrong") elif answer2 == 0: print ("Wrong") elif answer2 == 134: print ("Correct")
 
Çözüm
Sorunun kaynağı yukarda da yazıldığı gibi answer2'nin tanımlandığı yerin sadece bir koşulda gerçekleşmesi, sorunu çözmek için tanımlandığı yerde soldaki sütunla olan boşluğunu silin.

Ve kodunuzu şu şekilde sadeleştirmenizi öneririm.

Kod yazmanın yanı sıra temiz, anlaşılabilir ve sade kod yazmak da önemlidir.

Son olarak 72+42 için doğru cevap 114'dür.

Başka extra belirtmek istediğiniz bir durum/koşul ya da isteğiniz varsa kodları ona göre şekillendirebilirim.

kod.PNG
Hayır diyor
Python:
answer1 = int(input("Welcome to our Exam! What is 8+1? "))
if answer1 == 9:
    print ("Correct")
    answer2 = int(input("Question 2: Whats 72+42? "))
    if answer2 == 114:
        print ("Correct")
    else:
        print  ("Wrong")
else:
    print  ("Wrong")
 
Hayır diyor
Python:
answer1 = int(input("Welcome to our Exam! What is 8+1? "))
if answer1 == 9:
    print ("Correct")
    answer2 = int(input("Question 2: Whats 72+42? "))
    if answer2 == 114:
        print ("Correct")
    else:
        print  ("Wrong")
else:
    print  ("Wrong")
Ama daha karmaşık, ilk cevabın "Wrong" print'i nerede onu bulamadım senin kodunda.
 
Teşekkürler, buda çalıştı.
Rica ederim ve eklemek isterim.
Naçizane bir tavsiye; Bir dahakine sorununuzun yanı sıra tam olarak ne yapmak istediğinizi yani amacınızı da gönderi de belirtirseniz burada size yardım etmek isteyen herkes o amaç doğrultusunda hareket edecektir. Mesela "kullanıcıdan yanlış cevap alındığı takdirde program sonlanacaktır" şeklinde bir isteğiniz daha varsa lütfen başta belirtin.
 
"Kullanıcıdan yanlış cevap alındığı takdirde program sonlanacaktır" şeklinde bir isteğiniz daha varsa lütfen başta belirtin.
Bu fikir aklıma sonradan geldiği için sonradan belirttim, normalde hepsini başta söylerim. Kodun son hali bu:
[CODE lang="python" title="Kod" highlight="12"]answer1 = int(input("Question 1:What is 8+1? "))
if answer1 == 9:
print ("Correct! Next Question.")
else:
print ("False, you failed the Exam..")
quit()

answer2 = int(input("Question 2:What's 72+42? "))
if answer2 == 114:
print("Correct! You passed the Exam! Your point is 100.")
else:
print ("False, You failed the Exam. Your point is 50.")
[/CODE]
 
Bu fikir aklıma sonradan geldiği için sonradan belirttim, normalde hepsini başta söylerim. Kodun son hali bu:
[CODE lang="python" title="Kod" highlight="12"]answer1 = int(input("Question 1:What is 8+1? "))
if answer1 == 9:
print ("Correct! Next Question.")
else:
print ("False, you failed the Exam..")
quit()

answer2 = int(input("Question 2:What's 72+42? "))
if answer2 == 114:
print("Correct! You passed the Exam! Your point is 100.")
else:
print ("False, You failed the Exam. Your point is 50.")
[/CODE]
Tebrikler, gayet açık ve net olmuş ama kullanıcının ilk soruda yanlış yapınca direkt olarak sınavda başarısız olması sizce de biraz acımasızca değil mi?
 

Geri
Yukarı