繁体   English   中英

字典 Python3 的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM