[Python] Menu doesn't remember user_choice after going through questions

Discussão em 'Python' iniciado por Stack, Fevereiro 1, 2025.

  1. Stack

    Stack Membro Participativo

    The text is Swedish but the point is:

    Have a menu where 1 is a question game, 2 is statistics with globals and 3 is exit.

    And part of it is to separate question and question_game.

    My problem?

    When you first start it. Everything works. After answering questions you can check stats. Answer again. But you can't use the option 3 to exit the program. It simply restarts the menu.

    We are not allowed to use sys.exit().

    wrong = 0
    answered = 0

    def main():
    user_choice = ""

    while user_choice != "3":
    print_menu()
    user_choice = input("Ange val: ")

    if user_choice == "1":
    question_game()
    elif user_choice == "2":
    stats()
    elif user_choice == "3":
    print("Tack och hej! Forza Bajen!")
    else:
    print("-"*30)
    print("Du valde ett ogiltigt alternativ. Var god välj mellan 1-3.")

    def print_menu():
    print("-"*30)
    print("Meny - Frågespel")
    print("-"*30)
    print("1. Spela mitt frågespel")
    print("2. Spelstatistik")
    print("3. Avsluta spelet")

    def question_game():
    print("-"*30)
    print("Välkommen till frågespelet!")
    print("-"*30)
    question("Vilket är Nordens största publiklag?", "Hammarby")
    question("Vem skrev och sjöng 'Just idag är jag stark'?", "Kenta")
    question("Vad heter Bajens klassiska arena vid Johanneshov?", "Söderstadion")
    print("*"*30)
    print("Tack för att du var med och spela! Du skickas nu tillbaka till huvudmenyn.")
    print("*"*30)

    def question(quiz, answer):
    global wrong, answered
    while True:
    quiz = print("Vilket är Nordens största publiklag?")
    answer = str(input("Ditt svar: "))
    if answer == "Hammarby" or answer == "hammarby" or answer == "bajen" or answer=="Bajen":
    print("*"*30)
    print("Bra där! Synder eller ej gör gör detsamma, allt för Bajen och allt för mamma!")
    print("*"*30)
    answered = answered + 1

    while True:
    quiz = print("Vem skrev och sjöng 'Just idag är jag stark'?")
    answer = str(input("Ditt svar: "))
    if answer == "Kenta" or answer == "kenta":
    print("*"*30)
    print("Bra där! Synder eller ej gör gör detsamma, allt för Bajen och allt för mamma!")
    print("*"*30)
    answered = answered + 1

    while True:
    quiz = print("Vad heter Bajens klassiska arena vid Johanneshov?")
    answer = str(input("Ditt svar: "))
    if answer == "Söderstadion" or answer == "söderstadion":
    print("*"*30)
    print("Bra där! Synder eller ej gör gör detsamma, allt för Bajen och allt för mamma!")
    print("*"*30)
    answered = answered + 1
    while True:
    main()
    continue
    else:
    print("x"*30)
    print("Tyvärr fel svar... Försök igen!")
    print("x"*30)
    wrong = wrong + 1
    answered = answered +1
    continue
    else:
    print("x"*30)
    print("Tyvärr fel svar. Finns bara en sån artist. Försök igen!")
    print("x"*30)
    wrong = wrong + 1
    answered = answered +1
    continue
    else:
    print("x"*30)
    print("Tyvärr fel svar. Finns bara ett sånt lag. Försök igen!")
    print("x"*30)
    wrong = wrong + 1
    answered = answered +1
    continue

    def stats():
    print("*"*30)
    print("Du har svarat " + str(answered) + " gånger och har hittils " + str(wrong) + " fel.")
    print("*"*30)

    main()

    Continue reading...

Compartilhe esta Página