Python Forum
Matching variable to a list index
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Matching variable to a list index
#11
(Nov-28-2020, 11:31 AM)perfringo Wrote: Can you describe in spoken language what you are trying to do/achieve?

Without a plan it’s hard to judge have you reached your destination or not (or are you moving in right direction with optimal path).

Imagine this scenrario:

you are a tech professor and you want to build a test for your students.
using this program you can write your question, choose how many answers it will have, type your own answers and then you choose the right answer. the right answer is stored in a list (or dict) that will be printed out at the end along with the question number, question, answer, score.

on later stages i'll add the student's side with username/password db, saving/exporting options, GUI with tkinter and more.


Thanks again for your time.
Reply
#12
Ok so now i've managed to match using dictionaries but for some reason the dict_right_answers stops updating after the 2nd answer and keeps overwriting the last key.

Thoughts?

def get_questions():

    question = input("Enter your question: ")
    score = int(input("Enter question score: "))

    try:
        if sum(scores + [score]) > 100:
            print("Score average is higher than 100")
            if len(question_list) > 0:
                question_list.pop()
            if len(scores) > 0:
                scores.pop()

    except ValueError:
        print("Use Numbers.")
        get_questions()

    question_list.append(question)
    scores.append(score)


def get_answers():

    global answer
    choice_number = 0

    try:
        choice_number = int(input("Number of answers (Max 4)? "))

    except ValueError:
        print("Please select [2-4]")

    try:
        if choice_number > 4 or choice_number < 2:
            print("Please select [2-4]")
            choice_number = 0
            question_answers_global.clear()
            question_answers.clear()
            get_answers()

    except choice_number < 2 or choice_number > 4:
        print("Error")

    for ans in range(choice_number):
        answer = input(f"Answer #{ans + 1}: ")
        if len(answer) == 0:
            print("No empty answers.")
            get_answers()

        dict_answers[ans + 1] = answer
        answer_number.append(ans + 1)
        question_answers.append(answer)

    answers.clear()
    answers.append(choice_number)

    print(f"Number of answers: {answers[0]}")
    print(dict_answers)
    question_answers.clear()


def get_right_answer():

    right_answer = 0

    try:
        right_answer = int(input("Right Answer #: "))

    except ValueError:
        print("Value Error!")

    print(f"Your choice: {right_answer}")
    if 0 < right_answer <= answers[0]:
        sure = input("Are you sure? [Y/n]: ")
        if sure.lower() == "y":
            dict_right_answers[right_answer] = dict_answers[right_answer]
            print(f"Questions: {question_list}")
            print(f"Right Answers: {dict_right_answers}")
            print(f"Total Score: {sum(scores)}")

        elif sure.lower() == "n":
            get_right_answer()

        else:
            print("Please Select [Y/n]")
            get_right_answer()

    else:
        print(f"Please select 1-{answers}")
        get_right_answer()


def main():

    get_questions()
    get_answers()
    get_right_answer()


def finish():

    question_num = len(question_list)
    ask_continue = input("Do you wish to continue? [Y/n]: ")
    if ask_continue.lower() == "y":
        dict_answers.clear()
        answers.clear()
        main()
        finish()

    elif ask_continue.lower() == "n":
        print("\n\n==============RESULTS==============\n")
        print("#\t Question\t Answer\t\t Score")
        for i, a in zip(range(question_num), dict_right_answers.values()):
            print(f"{i+1}\t {question_list[i]}\t\t {a}\t\t {scores[i]}")
            i += 1

    else:
        print("Please select [Y/n]")
        finish()


if __name__ == "__main__":
    global answer

    scores = []
    question_list = []
    question_list_global_dict = {}
    question_answers = []
    question_answers_global = []
    answers = []
    answer_number = []
    right_answer_number = []
    dict_answers = {}
    dict_right_answers = {}

    main()
    finish()
[Image: missing.png]
Reply
#13
Did you actually understand the issues I raised as 1, 2, and 3?
Reply
#14
(Nov-28-2020, 06:46 PM)bowlofred Wrote: Did you actually understand the issues I raised as 1, 2, and 3?

Yes I have and that's why I got it to work but I guess i'm half right here or i'm missing something very obvious.
Reply
#15
Selenium is a portable framework for testing web applications. Selenium provides a playback tool for authoring functional tests without the need to learn a test scripting language (Selenium IDE)

Selenium Training in Chennai
Reply
#16
use the tutorial here for selenium.
It's short, and to the point.
web scraping part 1
web scraping part 2
Reply
#17
(Nov-29-2020, 04:10 PM)Larz60+ Wrote: use the tutorial here for selenium.
It's short, and to the point.
web scraping part 1
web scraping part 2

how is that related to anything I wrote or the code?
this is no way related to web.
Reply
#18
It doesn't. Sorry about that. I read the post directly above mine, which mentioned selenium, and that threw me off on a tangent.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  IndexError: list index out of range brunolelli 11 553 Mar-25-2021, 11:36 PM
Last Post: brunolelli
  Changing Index of 2 List in python giddyhead 0 223 Mar-05-2021, 05:45 PM
Last Post: giddyhead
  Create variable and list dynamically quest_ 12 571 Jan-26-2021, 07:14 PM
Last Post: quest_
  IndexError: list index out of range ramu4651 2 424 Jan-24-2021, 01:45 PM
Last Post: buran
  How to get index of minimum element between 3 & 8 in list Mekala 2 392 Nov-10-2020, 12:56 PM
Last Post: DeaD_EyE
  List index out of range error while accessing 2 lists in python K11 2 505 Sep-29-2020, 05:24 AM
Last Post: K11
  List index out of range error when attempting to make a basic shift code djwilson0495 4 714 Aug-16-2020, 08:56 PM
Last Post: deanhystad
  list.index() help qmfoam 4 660 Aug-07-2020, 07:25 PM
Last Post: qmfoam
  Function to return list of all the INDEX values of a defined ndarray? pjfarley3 2 567 Jul-10-2020, 04:51 AM
Last Post: pjfarley3
  Find index value in List Martin2998 3 772 May-12-2020, 02:17 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020