TypeError: 'function' object is not subscriptable - Python

后端 未结 3 1230
忘了有多久
忘了有多久 2020-12-06 05:41

I\'ve tried to solve an assignment with this code:

bank_holiday= [1, 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 2] #gives the list of bank holidays in each month

def ban         


        
相关标签:
3条回答
  • 2020-12-06 06:22

    You have two objects both named bank_holiday -- one a list and one a function. Disambiguate the two.

    bank_holiday[month] is raising an error because Python thinks bank_holiday refers to the function (the last object bound to the name bank_holiday), whereas you probably intend it to mean the list.

    0 讨论(0)
  • 2020-12-06 06:30

    It is so simple, you have 2 objects with the same name and when you say: bank_holiday[month] python thinks you wanna run your function and got ERROR.

    Just rename your array to bank_holidays <--- add a 's' at the end! like this:

    bank_holidays= [1, 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 2] #gives the list of bank holidays in each month
    
    def bank_holiday(month):
       if month <1 or month > 12:
           print("Error: Out of range")
           return
       print(bank_holidays[month-1],"holiday(s) in this month                                                                     
    0 讨论(0)
  • 2020-12-06 06:40

    You can use this:

    bankHoliday= [1, 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 2] #gives the list of bank holidays in each month
    
    def bank_holiday(month):
       month -= 1#Takes away the numbers from the months, as months start at 1 (January) not at 0. There is no 0 month.
       print(bankHoliday[month])
    
    bank_holiday(int(input("Which month would you like to check out: ")))
    
    0 讨论(0)
提交回复
热议问题