将用户输入与python中的字典进行比较

时间:2018-11-26 23:49:36

标签: python

我必须创建一个程序,该程序可以让用户输入他们已经选修的课程(一次选修),并将其与具有前提条件的“课程”词典进行比较,并打印出学生可以选修的课程采取。我不确定如何将用户输入与字典进行比较以打印他们可以选择的课程。这是我到目前为止所拥有的

print "Enter a course(0 to quit): "
courses = raw_input()
d = {150:[150],
     161:[161],
     162:[161],
     231:[162],
     241:[161],
     251:[251],
     260:[150],
     300:[241],
     303:[162],
     304:[162],
     307:[162],
     353:[231],
     385:[353],
     355:[231],
     461:[303,304,307,231],
     475:[303,304,307],
     480:[470]
     }



while courses =! '':

if courses in d.keys():
    print("You have taken: ", courses)
if courses == 0:
    break

1 个答案:

答案 0 :(得分:0)

您只获得一次输入。您需要循环输入:

d = {150:[150],161:[161],162:[161],231:[162],241:[161],251:[251],260:[150],300:[241],303:[162],304:[162],307:[162],353:[231],385:[353],355:[231],461:[303,304,307,231],475:[303,304,307],480:[470]}

prereqs = set()

while True:
    course = int(raw_input("Enter a course you have taken (0 to quit): "))
    if course == 0:
        break
    try:
        prereqs.update(d[course])
    except KeyError:
        print '\t\t\t\t\tHmm...I don\'t know that course'

在while循环中,我们每次迭代都获取输入。如果为0,则跳出循环。如果没有,我们尝试在字典中查找课程。如果失败,则打印“错误”消息。您应该可以从这里开始学习(prereqs存储您在一组课程中学习过的课程)。