亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在函數中傳遞這個字典

在函數中傳遞這個字典

慕村225694 2021-12-17 14:56:46
我需要以某種方式訪問類字典并使用 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 optiondef 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 classesdef 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()
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

我能想到的最簡單的方法如下。我修改了你的 2 個函數,并將“類”設為全局。


classes = {}



def checkOption(option):

    global classes

    if option == 1:

        courseCount = courseCounter()

        classes = addClasses(courseCount)

    elif option == 2:

        removeClasses()

    elif option == 3:

        viewCourseDetails()

    elif option == 4:

        viewSchedule()



def removeClasses():

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

    if courseName in classes:

        del classes[courseName]

    print(classes)

我希望這可以幫助你。


查看完整回答
反對 回復 2021-12-17
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

通過 globals() 變量,以便您可以跨函數傳遞它:


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 :

        if 'classes' in globals() :

            removeClasses(globals()['classes'])

        else :

            print("Insert a class before!")

            checkOption(1)

    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

    globals()[ 'classes' ] = classes

    return classes


def removeClasses(classes):

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

    if courseName 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()

這適用于我的機器。這也檢查類的存在或重定向用戶來定義類。


注意 globals() 的行為(例如,為什么全局變量是邪惡的?)。否則,您可以定義一個對象(一個空字典)并通過函數傳遞它,填充它或檢查它是否為空,這可能更安全。


查看完整回答
反對 回復 2021-12-17
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號