擅长:python、mysql、java
<p>您使用的是for-each循环构造。当对iterable执行<code>for x in iterable</code>时,<code>x</code>这里不是索引,而是元素本身。因此,当您运行<code>for d in dates</code>时,Python返回的是日期中的<code>datetime</code>对象,而不是索引</p>
<p>相反,你必须做到:</p>
<pre><code>for checkexp in dates:
if checkexp + timedelta(days = 7) < current:
print('Food will expire within a week')
</code></pre>
<p>或者,如果同时需要索引和元素,可以使用<code>enumerate</code>函数</p>
<pre><code>for i, checkexp in enumerate(dates):
# You can access the element using either checkexp or dates[i].
if checkexp + timedelta(days = 7) < current:
print('Food will expire within a week')
</code></pre>
<p>如果必须使用索引,则可以使用<code>len</code>函数获取iterable的长度,并像在C中一样访问列表元素。但这不是Pythonic</p>
<pre><code>for i in range(len(dates)):
if dates[i] + timedelta(days = 7) < current:
print('Food will expire within a week')
</code></pre>