Python b=[0]*len(st)TypeError:类型为'的对象;功能';没有len()

Python b=[0]*len(st)TypeError:类型为'的对象;功能';没有len(),python,python-3.x,algorithm,Python,Python 3.x,Algorithm,我正在尝试创建一个算法,基本上可以看到程序中的股票列表(不是真正的股票,只是程序中的股票:D),当股票价格最低时买入,当股票价格最高时卖出,然后告诉我利润是多少。以下是一个例子: 这是我的密码: from turtle import st mxdiff = 0 buy = 0 sell = 0 a = [] # min array from left b = [0] * len(st) # max array from right d = [] # difference array m

我正在尝试创建一个算法,基本上可以看到程序中的股票列表(不是真正的股票,只是程序中的股票:D),当股票价格最低时买入,当股票价格最高时卖出,然后告诉我利润是多少。以下是一个例子:

这是我的密码:

from turtle import st

mxdiff = 0
buy = 0
sell = 0
a = []  # min array from left
b = [0] * len(st)  # max array from right
d = []  # difference array
minleft = st[0]
maxright = st[len(st) - 1]

for i in range(0, len(st)):
    if (st[i] < minleft):
        minleft = st[i]
        a.append(st[i])
    else:
        a.append(minleft)

for i in range(len(st) - 1, -1, -1):
    if (st[i] > maxright):
        maxright = st[i]
        b[i] = st[i]
    else:
        b[i] = maxright

for i in range(0, len(st)):
    d.append(b[i] - a[i])

mxdiff = max(d)

for i in range(0, len(st)):
    if (d[i] == mxdiff and d[i + 1] == mxdiff):
        buy = i
        break

for i in range(len(st) - 1, -1, -1):
    if (d[i] == mxdiff and d[i - 1] == mxdiff):
        sell = i
        break

print("stocks has to be bought on day ")
print(buy + 1)

print("stocks has to be sold on day ")
print(sell + 1)
从海龟进口
mxdiff=0
购买=0
卖出=0
a=[]#从左到右的最小数组
b=[0]*len(st)#从右侧开始的最大数组
d=[]#差分数组
minleft=st[0]
maxright=st[len(st)-1]
对于范围(0,len(st))中的i:
如果(st[i]maxright):
maxright=st[i]
b[i]=st[i]
其他:
b[i]=maxright
对于范围(0,len(st))中的i:
d、 追加(b[i]-a[i])
mxdiff=最大值(d)
对于范围(0,len(st))中的i:
如果(d[i]==mxdiff和d[i+1]==mxdiff):
买=我
打破
对于范围内的i(len(st)-1,-1,-1):
如果(d[i]==mxdiff和d[i-1]==mxdiff):
sell=i
打破
打印(“股票必须在当天购买”)
打印(购买+1)
打印(“股票必须在当天出售”)
打印(销售+1)

.st()(.showturtle)是turtle模块的一个函数。使用其他变量并尝试。

好吧,结果证明
turtle.st
是一个函数。因此,您不能有意义地编写
len(st)
。你认为st是什么?我认为你首先需要做一些假设,你不能一次创建一个适合所有可能场景的算法