python list TypeError'slice'对象不可迭代,创建新列表然后汇总新切片列表

时间:2014-10-18 13:29:16

标签: python list

我是编程和python的新手,所以请耐心等待。

我有以下代码:

Date_Entered = str(raw_input('Enter Current Date in the form mm/dd/yyyy: '))
Split_Date_Entered = Date_Entered.split('/')
Base_Year = 2013
Base_Month = 1
Base_Day = 1
Entered_Year = int(Split_Date_Entered[2])
Entered_Month = int(Split_Date_Entered[0])
Entered_Day = int(Split_Date_Entered[1])
NumberOfDaysInMonth = [0,31,28,31,30,31,30,31,31,30,31,30,31]
N = NumberOfDaysInMonth
Month_Difference = Entered_Month - Base_Month
MD = Month_Difference

我的目标是在同一年(2013年)取一个日期并计算自那天起的天数。 我希望Month_Differnce可以作为NumbersOfDaysInMonth列表的索引。 然后我想将NumbersOfDaysInMonth中的项目从第一个项目汇总到Month_Difference结果为 我尝试过切片列表,然后将结果列表汇总并通过以下方式对其进行汇总:

slice(N[0],N[MD])

输出

slice(0, 31, None)

我有点困惑于为什么它会回归“无”的最正确价值。但我继续尝试总结价值, 我将列表分配给变量NewList,然后尝试按以下方式对列表求和:

sum(NewList)

我收到

的错误消息

TypeError:' slice'对象不可迭代

有人可以帮助我理解错误的概念 并告诉我如何纠正它

2 个答案:

答案 0 :(得分:0)

也许this article帮助您。

sum(NewList[slice(start,stop)])
sum(NewList[slice(1,10)])

答案 1 :(得分:-1)

您想要从年初到输入日期的所有日期的总和。假设输入的日期是6月15日。在这种情况下,我们需要31+28+31+30+31

ENTERED_MONTH = 6
sum(N[:ENTERED_MONTH])

给你你想要的东西。然后只需添加Entered_Day的数字:

days_elapsed = Entered_Day + sum(N[:Entered_Month])

仅供参考,您的NumberOfDaysInMonth列表以0开头。这是不正确的。列表应该是:

[31,28,31,30,31,30,31,31,30,31,30,31]