[英]Problems with Dictionary Python3
我目前正在做一个猜谜游戏任务。 该作业使用字典来存储作为键的课程名称和作为值的课程编号。 用户猜测给定课程名称的课程编号。 如果该值与键匹配,则应打印“正确”。 反之亦然。
我已经让程序一次显示一个键,输入语句将它们分开。 我已经让正确/不正确的计数器工作了。 我无法让 if 语句正常工作,该语句应该检查值是否与键匹配。 无论答案是否正确,它每次都打印不正确。 我意识到 if 语句的条件可能有问题,因为我不确定如何一次提取一个值。
这是我到目前为止所拥有的:
# Mainline
def main():
programming_courses={"Computer Concepts":"IT 1025",\
"Programming Logic":"IT 1050",\
"Java Programming":"IT 2670",\
"C++ Programming":"IT 2650",\
"Python Programming":"IT 2800"}
print ("Learn your programming courses!\n")
correct=0
incorrect=0
v=0
# Game Loop
for key in programming_courses.keys():
print(key)
answer = input("Enter the Course Number: ")
if answer != programming_courses.values():
print("Incorrect")
incorrect += 1
else:
print("Correct!")
correct += 1
# Display correct and incorrect answers
print ("You missed ",incorrect," courses.")
print ("You got ",correct," courses.\n")
# Entry Point
response=""
while (response!="n"):
main()
response=input("\n\nPlay again?(y/n)\n# ")
你的问题是当你检查你的听写时。 目前,您的代码正在将答案与字典中所有值的列表进行比较:
out[]:
dict_values(['IT 1025', 'IT 1050', 'IT 2670', 'IT 2650', 'IT 2800'])
如果您更改为以下内容,则可以通过使用给定键从 dict 中获取特定值:
for key in programming_courses.keys():
print(key)
answer = input("Enter the Course Number: ")
if answer != programming_courses[key]:
print("Incorrect")
incorrect += 1
else:
print("Correct!")
correct += 1
你的问题在这里:
if answer != programming_courses.values():
programming_courses.values()
是字典中所有值的列表。 如果您不了解程序中发生了什么,那么将内容打印出来并查看它是否符合您的预期会很有帮助。
您想要的是您现在所在key
的特定值,您需要从字典中查找,如下所示:
if answer != programming_courses[key]:
此外,迭代 dict 默认情况下会为您提供密钥,因此您可以说:
for key in programming_courses:
你不需要在那里使用.keys()
。
你可以试试这个
if answer != programming_courses[key]:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.