我试图生成一个包含 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
Run Code Online (Sandbox Code Playgroud)
你缺少一个结束括号:
x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1) <-
Run Code Online (Sandbox Code Playgroud)
只需添加一个结束括号,您的错误就会消失:
x = (Lambda/(AvgSRate**Exp))*(1+(1/10)*(2*(random.random()) - 1))
Run Code Online (Sandbox Code Playgroud)
确保Expectation_list也在某处定义或更可能你应该返回 Elist。
您也在重新分配 x ,因此您实际上从未使用x传入的参数,因此如果您不使用它,请将其删除,如果您只想返回 Elist ,那么您可以返回一个列表组合:
def Initilization(AvgSRate, Lambda, Exp):
return [(Lambda / (AvgSRate ** Exp)) * (1 + (1 / 10) * (2 * (random.random()) - 1))
for a in range(1, 361)]
Run Code Online (Sandbox Code Playgroud)