Python Forum
Hi how do i solve this ? - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Hi how do i solve this ? (/thread-24236.html)



Hi how do i solve this ? - Houston222 - Feb-05-2020

Hi, right now what happens is that my codes shown below will print out error even when a wrong answer is inserted, this error message under the else is meant to only be shown when a user key in an input that is invalid, how do i make sure the error code DO NOT show even when the answer is wrong . Thank you

while True:
      print("Where is Moscow located at?")
      answer1 = input("a) Russia\nb) China\nc) Japan\nd) Mongolia\nAnswer: ")
      if answer1 == "a" or answer1 == "Russia":
            print("Right Answer!")
            break
      if answer1 == "b" or answer1 == "China":
            print("Wrong Answer!")
      if answer1 == "c" or answer1 == "Japan":
            print("Wrong Answer!")
      if answer1 == "d" or answer1 == "Mongolia":
            print("Wrong Answer!")
      else:
            print("Error!")
_____________________________________________________________________________________________


RE: Hi how do i solve this ? - t4keheart - Feb-05-2020

Well, assuming your indentation is all fixed up in your actual program, I would just do this a different way:

while True:
    print("In which country is Moscow located?")
    answer1 = input("a) Russia\nb) China\nc) Japan\nd) Mongolia\nAnswer: ")
    if answer1 == "a" or answer1 == "Russia":
        print("Right Answer!")
        break
    elif answer1 != "a" or answer1 != "Russia":
        print('Incorrect!')
        break
    else:
        print('Error!')
Logic is, "if answer is a or china, print correct... if it's not a or china (anything else), print incorrect.


RE: Hi how do i solve this ? - DeaD_EyE - Feb-05-2020

Hm, the code works.
Maybe you've missed an indentation. We can't see it here, because white space are stripped away, if you don't put you code into code tags.

This works, but you can simplify this very much.
while True:
    print("Where is Moscow located at?")
    answer1 = input("a) Russia\nb) China\nc) Japan\nd) Mongolia\nAnswer: ")
    if answer1 == "a" or answer1 == "Russia":
        print("Right Answer!")
        break
    if answer1 == "b" or answer1 == "China":
        print("Wrong Answer!")
    if answer1 == "c" or answer1 == "Japan":
        print("Wrong Answer!")
    if answer1 == "d" or answer1 == "Mongolia":
        print("Wrong Answer!")
    else:
        print("Error!")
The simpler version:
while True:
    print("Where is Moscow located at?")
    answer1 = input("a) Russia\nb) China\nc) Japan\nd) Mongolia\nAnswer: ")
    if answer1 == "a" or answer1 == "Russia":
        print("Right Answer!")
        break
You can do it once right and make a function for it:



RE: Hi how do i solve this ? - buran - Feb-05-2020

while True:
    print("Where is Moscow located at?")
    answer = input("a) Russia\nb) China\nc) Japan\nd) Mongolia\nAnswer: ")
    if answer.lower() in ("a", "russia"):
        print("Right Answer!")
        break
    else:
        print("wrong answer")