创建一个“ Flashcard”词汇程序

Cor*_*y D 2 python dictionary python-3.x

我想用Python 3编写一个实质上是词汇卡片的程序。我可以列出术语,添加术语或显示随机定义以尝试准确猜测。一旦准确地猜出,我将获得另一个定义进行猜测的选项。另外,我只想显示一个随机的key:value对,并继续查看对,直到输入EXIT

我使用字典制作了大部分程序,但是不确定如何输入正确的命令输入所显示定义的键。如果有人可以提供建议,我将不胜感激!另外,在输入此代码时,我得到了一些错误消息,并且不得不进行一系列缩进,不确定在那儿我做错了什么。

import random

terms = {"1" : "def 1", #Dictionary of 'terms' and 'definitions'
         "2" : "def 2",
         "3" : "def 3"}

menu = None
while menu != "4":
    print("""

    DIGITAL FLASHCARDS!

    1 - List Terms
    2 - Add Term
    3 - Guess Random Definition
    4 - Exit

    """)
    menu = input("\t\t\tEnter Menu option: ")
    if menu == "1":  # List Terms
        print("\n")
        for term in terms:
            print("\t\t\t", term)
        input("\n\tPress 'Enter' to return to Main Menu.\n")

    elif menu == "2":  # Add Term
        term = input("\n\tEnter the new term: ").upper()
        if term not in terms:
            definition = input("\tWhat is the definition? ")
            terms[term] = definition
            print("\n\t" + term, "has been added.")
        else:
            print("\n\tThat term already exists!")
            input("\n\tPress 'Enter' to return to Main Menu.\n")

    elif menu == "3": # Guess Random Definition. Once correct, choose new random definition
        print("\n\t\t\tType 'Exit' to return to Menu\n")
        choice = random.choice(list(terms.values()))
        print("\n\t" + choice + "\n")

        guess = None
        while guess != "EXIT":
            guess = str(input("\tWhat is the term? ")).upper()
Run Code Online (Sandbox Code Playgroud)

fra*_*ang 5

显示随机定义以尝试准确猜测。一旦准确猜出,我将获得另一个定义的选择

用于terms.items()同时获取键和值。

定义将新定义问题生成到函数中generate_question()以避免重复的过程。

elif menu == "3": # Guess Random Definition. Once correct, choose new random definition
    print("\n\t\t\tType 'Exit' to return to Menu\n")
    def generate_question():
        term, definition = random.choice(list(terms.items()))
        print("\n\t" + definition + "\n")
        return term
    term = generate_question()
    guess = None
    while guess != "EXIT":
        guess = input("\tWhat is the term? ").upper()
        if guess == term:
            print("Correct!")
            if input("\tAnother definition?(y/n)").upper() in ["Y", "YES"]:
                term = generate_question()
            else:
                break
Run Code Online (Sandbox Code Playgroud)

另外,我只想显示一个随机的key:value对,并继续查看对直到输入EXIT。

elif menu == "4": # Random display a term-definition pair.
    print("\n\t\t\tType 'Exit' to return to Menu\n")
    exit = None
    while exit != "EXIT":
        term, definition = random.choice(list(terms.items()))
        print(term + ":", definition)
        exit = input("").upper()  # Press enter to continue.
Run Code Online (Sandbox Code Playgroud)

记住要修改开始部分:

while menu != "5":
    print("""

    DIGITAL FLASHCARDS!

    1 - List Terms
    2 - Add Term
    3 - Guess Random Definition
    4 - View term-definition pairs
    5 - Exit

    """)
Run Code Online (Sandbox Code Playgroud)