[英]passing this dictionary in the function
我需要以某種方式訪問類字典並使用 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()
通過 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() 的行為(例如, 為什么全局變量是邪惡的? )。 否則,您可以定義一個對象(一個空字典)並通過函數傳遞它,填充它或檢查它是否為空,這可能更安全。
我能想到的最簡單的方法如下。 我修改了你的 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)
我希望這可以幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.