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

2024-05-23 20:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图生成一个360个值的列表,由提供的公式确定。我总是在突出显示的“Elist”部分出现语法错误。这是使用Python3.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

Tags: lambdain列表random公式bots语法错误exp
1条回答
网友
1楼 · 发布于 2024-05-23 20:27:41

您缺少结束参数:

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,那么您可以返回一个list comp:

def Initilization(AvgSRate, Lambda, Exp):
return [(Lambda / (AvgSRate ** Exp)) * (1 + (1 / 10) * (2 * (random.random()) - 1))
        for a in range(1, 361)]

相关问题 更多 >