尝试通过键入房号获得相应的答案


def main():
# Initialize dictionaries
rooms = { 'CS101':3004, 'CS102':4501, 'CS103':6755,
'NT110':1244, 'CM241':1411}

instructors = {'CS101':'Haynes', 'CS102':'Alvarado',
'CS103':'Rich', 'NT110':'Burke',
'CM241':'Lee'}
times = {'CS101':'8:00 am', 'CS102':'9:00 am',
'CS103':'10:00 am', 'NT110':'11:00 am',
'CM241':'12:00 pm'}
course = input('Enter a course number:' )

if course not in rooms:
print(course, 'is an invalid course number.')
else:
print('The details for course', course, 'are:')
print('Room:', rooms)
print('Instructor:', instructors[course])
print('Time:', times)
# Call the main function.
main()

一旦我写下相应的课程编号,我应该得到相应的答案,而不是得到所有的。

您有三个字典(由于课程代码的重复,您实际上应该只有一个)。但是,根据您目前拥有的内容,您需要确保课程代码存在于所有三个字典中。

def main():
# Initialize dictionaries
rooms = { 'CS101':3004, 'CS102':4501, 'CS103':6755,
'NT110':1244, 'CM241':1411}

instructors = {'CS101':'Haynes', 'CS102':'Alvarado',
'CS103':'Rich', 'NT110':'Burke',
'CM241':'Lee'}
times = {'CS101':'8:00 am', 'CS102':'9:00 am',
'CS103':'10:00 am', 'NT110':'11:00 am',
'CM241':'12:00 pm'}
course = input('Enter a course number: ' )

if course in rooms and course in times and course in instructors:
print('The details for course', course, 'are:')
print('Room:', rooms[course])
print('Instructor:', instructors[course])
print('Time:', times[course])
else:
print('Invalid course')
# Call the main function.
main()

一个更好的结构可以是:

def main():
courses = {'CS101': {'room': 3004, 'instructor': 'Haynes', 'time': '8:00 am'},
'CS102': {'room': 4501, 'instructor': 'Alvarado', 'time': '9:00 am'},
'CS103': {'room': 6755, 'instructor': 'Rich', 'time': '10:00 am'},
'NT110': {'room': 1244, 'instructor': 'Burke', 'time': '11:00 am'},
'CM241': {'room': 1411, 'instructor': 'Lee', 'time': '12:00 am'}}
course = input('Enter a course number: ')
if cd := courses.get(course):
print('The details for course', course, 'are:')
print('Room: {}nInstructor: {}nTime: {}'.format(*cd.values()))
else:
print('Invalid course')

# Call the main function.
main()

是什么阻止您正确复制intsructor的逻辑?休息时也一样。

def main():
# Initialize dictionaries
rooms = { 'CS101':3004, 'CS102':4501, 'CS103':6755,
'NT110':1244, 'CM241':1411}

instructors = {'CS101':'Haynes', 'CS102':'Alvarado',
'CS103':'Rich', 'NT110':'Burke',
'CM241':'Lee'}
times = {'CS101':'8:00 am', 'CS102':'9:00 am',
'CS103':'10:00 am', 'NT110':'11:00 am',
'CM241':'12:00 pm'}
course = input('Enter a course number:' )

if course not in rooms:
print(course, 'is an invalid course number.')
else:
print('The details for course', course, 'are:')
print('Room:', rooms[course])
print('Instructor:', instructors[course])
print('Time:', times[course])
# Call the main function.
main()

输出示例#

Enter a course number:CS101
The details for course CS101 are:
Room: 3004
Instructor: Haynes
Time: 8:00 am

问题是,当您试图打印出字典时,您没有访问值,而是在某些情况下试图打印出整个字典。

修复方法如下:

def main():
# Initialize dictionaries
rooms = {'CS101': 3004, 'CS102': 4501, 'CS103': 6755, 'NT110': 1244, 'CM241': 1411}
instructors = {'CS101': 'Haynes', 'CS102': 'Alvarado', 'CS103': 'Rich', 'NT110': 'Burke', 'CM241': 'Lee'}
times = {'CS101': '8:00 am', 'CS102': '9:00 am', 'CS103': '10:00 am', 'NT110': '11:00 am', 'CM241': '12:00 pm'}
course = input('Enter a course number:')
if course not in rooms:
print(course, 'is an invalid course number.')
else if course not in instructors:
print(course, 'is an invalid course number.')
else if course not in times:
print(course, 'is an invalid course number.')
else:
print('The details for course', course, 'are:')
print('Room:', rooms[course])
print('Instructor:', instructors[course])
print('Time:', times[course])

main()

希望这对你有帮助!

相关内容

最新更新