为什么会显示';无';作为python中我的函数的输出?

为什么会显示';无';作为python中我的函数的输出?,python,python-3.x,Python,Python 3.x,编写一个函数accordian(l),该函数将整数l列表作为输入,如果每对相邻元素之间的绝对差严格增大,则返回True def accordian(l): for i in range(len(l)): diff = [] for i in range(len(diff)): diff = l[i] - l[i+1] if diff[i] < diff[i+1]:

编写一个函数
accordian(l)
,该函数将整数
l
列表作为输入,如果每对相邻元素之间的绝对差严格增大,则返回
True

def accordian(l):

    for i in range(len(l)):
     diff = []
     for i in range(len(diff)):

             diff = l[i] - l[i+1]
             if diff[i] < diff[i+1]:
                     return True
             else:
                     return False

print(accordian([1,3,7,2,9]))
def手风琴(l):
对于范围内的i(len(l)):
差异=[]
对于范围内的i(len(diff)):
差异=l[i]-l[i+1]
如果diff[i]

输出:“无”

您的代码不工作,因为内部循环从不运行,因为
diff
的长度为0,但是
0
的范围不继续,如果您向
diff
添加值,您的代码将工作,我无法给出代码,因为我不完全理解您想要做什么。

您可以尝试:

def accordian(data):
    diff = []
    for index, value in enumerate(data):
        if index == 0:
            continue
        diff.append(data[index] - data[index - 1])

    flag = True
    for index, single_element in enumerate(diff):
        if index == 0:
            continue
        if diff[index] <= diff[index - 1]:
            flag = False
            break
    return flag


print(accordian([1, 3, 7, 2, 9]))
print(accordian([1, 3, 7, 13, 21]))
print(accordian([1, 3, 5, 7, 9]))

答案仍然没有。对不起,有一些小改动,你能再次检查代码吗?谢谢大家!顺便说一句,问题是编写一个函数展开(l),该函数以整数l的列表作为输入,如果每个相邻元素对之间的绝对差严格增加,则返回True。
diff
为空,没有任何可重复的内容,这意味着您的返回仍然没有达到。您必须为范围内的i(len(diff))替换
使用
for i在范围内(len(l)):
否则函数将永远无法返回
。我猜应该是
diff[I]=l[I]-l[I+1]
而不是
diff=l[I]-l[I+1]
@Shallum:因为这个答案解决了你的问题。请接受同样的。
False
True
False