将值循环到列表中(更改值)

Log*_*ite 2 python loops list

我试图生成一个包含 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)

Pad*_*ham 5

你缺少一个结束括号:

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)