为什么我们不能在 Python 中下标 'int' 对象

Why we can't subscript 'int' object in Python

我正在尝试 return 根据给定年份的月份的天数,最后,如果年份不是闰年,它应该 return 根据给定的天数到定义的列表,但出现错误。

这是我的代码

days_of_month=[0,31,28,31,30,31,30,31,31,30,31,30,31]
year=int(input('enter the year - '))
month=int(input('enter the month - '))

def isleap(year):
    return year%4==0 and (year % 100!=0 or year % 400==0)
def days(month,year):
    if month > 12 or month < 1:
        print('Invalid')     
    else:
        if month==2 and isleap(year):
            return 29
        else:
            return month[days_of_month]    

print(days(month,year))            

错误信息

Traceback (most recent call last):
  File "d:\Function_Example.py", line 16, in <module>
    print(days(month,year))
  File "d:\Function_Example.py", line 14, in days
    return month[days_of_month]
TypeError: 'int' object is not subscriptable

还有其他方法可以从列表中获取元素吗?

你混淆了函数的最后一行。

应该是:

days_of_month=[0,31,28,31,30,31,30,31,31,30,31,30,31]
year=int(input('enter the year - '))
month=int(input('enter the month - '))

def isleap(year):
    return year%4==0 and (year % 100!=0 or year % 400==0)
def days(month,year):
    if month > 12 or month < 1:
        print('Invalid')     
    else:
        if month==2 and isleap(year):
            return 29
        else:
            return days_of_month[month]    

print(days(month,year))