在函数中传递这个字典

我需要以某种方式访问类字典并使用 removeClass() 函数将其删除,但不确定如何在其中传递类。如果选择了第2个选项,则该程序应从字典中从字典中删除类。


我不知道在这里做什么。


def prompt():

    print('MENU')

    print('1 --> Add classes.')

    print('2 --> Remove classes.')

    print('3 --> View course details.')

    print('4 --> View schedule.')

    print('5 --> Quit.')

    option = int(input('What would you like to choose? '))

    while option < 1 or option > 5:

        option = int(input('Please enter a valid numerical option: '))

    return option


def checkOption(option):

    if option == 1:

        courseCount = 0

        courseCount = courseCounter()

        classes = addClasses(courseCount)

    elif option == 2:

        removeClasses(courses)

    elif option == 3:

        viewCourseDetails()

    elif option == 4:

        viewSchedule()



def courseCounter():

    courseCount = input('Enter a numerical value of courses only (up to 4): ')

    while courseCount.isnumeric() == False:

          courseCount = input('Enter a NUMERICAL value of courses only (up to 4): ')

    return int(courseCount)


def addClasses(courseCount):

    classes = {}

    i = 1

    while i <= courseCount:

        courseName = input('Enter a course name: ')

        classes[courseName] = {}

        classes[courseName]['Room Number'] = input('Enter a room number: ')

        classes[courseName]['Instructor'] = input('Enter a instructor: ')

        classes[courseName]['Meeting time'] = input('Enter a meeting time: ')

        i = i + 1

    return classes


def removeClasses(*****):

    courseName = input('Enter the class you would like to remove: ')

    if ***** in classes:

        del classes[courseName]

    print(classes)




def main():

    option = prompt()

    checkOption(option)

    while option > 1 or option < 5:

        if option == 5:

            break

        option = prompt()

        checkOption(option)

main()


慕村225694
浏览 158回答 2
2回答

犯罪嫌疑人X

我能想到的最简单的方法如下。我修改了你的 2 个函数,并将“类”设为全局。classes = {}def checkOption(option):&nbsp; &nbsp; global classes&nbsp; &nbsp; if option == 1:&nbsp; &nbsp; &nbsp; &nbsp; courseCount = courseCounter()&nbsp; &nbsp; &nbsp; &nbsp; classes = addClasses(courseCount)&nbsp; &nbsp; elif option == 2:&nbsp; &nbsp; &nbsp; &nbsp; removeClasses()&nbsp; &nbsp; elif option == 3:&nbsp; &nbsp; &nbsp; &nbsp; viewCourseDetails()&nbsp; &nbsp; elif option == 4:&nbsp; &nbsp; &nbsp; &nbsp; viewSchedule()def removeClasses():&nbsp; &nbsp; courseName = input('Enter the class you would like to remove: ')&nbsp; &nbsp; if courseName in classes:&nbsp; &nbsp; &nbsp; &nbsp; del classes[courseName]&nbsp; &nbsp; print(classes)我希望这可以帮助你。

守着星空守着你

通过 globals() 变量,以便您可以跨函数传递它:def prompt():&nbsp; &nbsp; print('MENU')&nbsp; &nbsp; print('1 --> Add classes.')&nbsp; &nbsp; print('2 --> Remove classes.')&nbsp; &nbsp; print('3 --> View course details.')&nbsp; &nbsp; print('4 --> View schedule.')&nbsp; &nbsp; print('5 --> Quit.')&nbsp; &nbsp; option = int(input('What would you like to choose? '))&nbsp; &nbsp; while option < 1 or option > 5:&nbsp; &nbsp; &nbsp; &nbsp; option = int(input('Please enter a valid numerical option: '))&nbsp; &nbsp; return optiondef checkOption(option):&nbsp; &nbsp; if option == 1:&nbsp; &nbsp; &nbsp; &nbsp; courseCount = 0&nbsp; &nbsp; &nbsp; &nbsp; courseCount = courseCounter()&nbsp; &nbsp; &nbsp; &nbsp; classes = addClasses(courseCount)&nbsp; &nbsp; elif option == 2 :&nbsp; &nbsp; &nbsp; &nbsp; if 'classes' in globals() :&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; removeClasses(globals()['classes'])&nbsp; &nbsp; &nbsp; &nbsp; else :&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print("Insert a class before!")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; checkOption(1)&nbsp; &nbsp; elif option == 3:&nbsp; &nbsp; &nbsp; &nbsp; viewCourseDetails()&nbsp; &nbsp; elif option == 4:&nbsp; &nbsp; &nbsp; &nbsp; viewSchedule()def courseCounter():&nbsp; &nbsp; courseCount = input('Enter a numerical value of courses only (up to 4): ')&nbsp; &nbsp; while courseCount.isnumeric() == False:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; courseCount = input('Enter a NUMERICAL value of courses only (up to 4): ')&nbsp; &nbsp; return int(courseCount)def addClasses(courseCount):&nbsp; &nbsp; classes = {}&nbsp; &nbsp; i = 1&nbsp; &nbsp; while i <= courseCount:&nbsp; &nbsp; &nbsp; &nbsp; courseName = input('Enter a course name: ')&nbsp; &nbsp; &nbsp; &nbsp; classes[courseName] = {}&nbsp; &nbsp; &nbsp; &nbsp; classes[courseName]['Room Number'] = input('Enter a room number: ')&nbsp; &nbsp; &nbsp; &nbsp; classes[courseName]['Instructor'] = input('Enter a instructor: ')&nbsp; &nbsp; &nbsp; &nbsp; classes[courseName]['Meeting time'] = input('Enter a meeting time: ')&nbsp; &nbsp; &nbsp; &nbsp; i = i + 1&nbsp; &nbsp; globals()[ 'classes' ] = classes&nbsp; &nbsp; return classesdef removeClasses(classes):&nbsp; &nbsp; courseName = input('Enter the class you would like to remove: ')&nbsp; &nbsp; if courseName in classes:&nbsp; &nbsp; &nbsp; &nbsp; del classes[courseName]&nbsp; &nbsp; print(classes)def main():&nbsp; &nbsp; option = prompt()&nbsp; &nbsp; checkOption(option)&nbsp; &nbsp; while option > 1 or option < 5:&nbsp; &nbsp; &nbsp; &nbsp; if option == 5:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break&nbsp; &nbsp; &nbsp; &nbsp; option = prompt()&nbsp; &nbsp; &nbsp; &nbsp; checkOption(option)main()这适用于我的机器。这也检查类的存在或重定向用户来定义类。注意 globals() 的行为(例如,为什么全局变量是邪恶的?)。否则,您可以定义一个对象(一个空字典)并通过函数传递它,填充它或检查它是否为空,这可能更安全。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python