我试图生成一个360值的列表,由提供的公式决定。我一直在" Elist"上出现语法错误。部分突出显示这是使用python 3.4。
SRate = [5,5,5]
Bots = 120
NQueue = 3
TSim = 100
Exp = 2
DDistance = 1
Lambda = 40 # 120/3 = 40
import random
AvgSRate = 5
def Initilization(AvgSRate,Lambda,Exp,x):
Elist = []
for a in range(1,361):
x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1)
Elist.append(x) # <--- Error is in this line.
return Expectation_list
答案 0 :(得分:4)
你错过了一个结束语:
x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1) <-
只需添加一个结束语,您的错误就会消失:
x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1))
确保Expectation_list
也在某处定义,或者更有可能返回Elist
。
你也在重新分配x,所以你实际上并没有使用传入的参数x
所以如果你不使用它就删除它,如果你只想返回Elist然后你可以返回一个列表comp:
def Initilization(AvgSRate, Lambda, Exp):
return [(Lambda / (AvgSRate ** Exp)) * (1 + (1 / 10) * (2 * (random.random()) - 1))
for a in range(1, 361)]