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)
显示随机定义以尝试准确猜测。一旦准确猜出,我将获得另一个定义的选择
用于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)