从不同的函数中获取给定条件下的属性

2024-09-30 16:35:29 发布

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

我做了一个项目,使用数字和数学运算符的组合来创建方程,以获得预期的数字

鉴于:

time to create the equation, set of number, set of operator, a goal

职能包括:

  • 创建编号和运算符的顺序

  • 评估序列(以获得结果)

  • 变异序列

  • 获取最佳序列,其中序列结果=目标

问题: 我需要得到sequencetime,其中result等于goal

以下是我上一次试用的完整脚本:

self.goal = 22
self.time = 4
self.sequence = sequence
self.BestSequence = []

def step(self):
    while self.time > 0:
        self.time -= 1
        self.createSeqeuence ()  #create sequence
        self.evaluate()          #evaluate sequence
        self.allResult.append(self.evaluate()) #make list of result within time
        self.mutateSequence()    #modify sequence
    self.getBestSequence() #after time = 0, get the best sequence from allResult where result = goal
    print(self.result, self.BestSequence,self.time) #show

def createSeqeuence (self)
def evaluate(self)
def changeSequence(self)

结果:

time     sequence                  result
1      ['12','+','8']                20
2      ['10','+','8']                18
3      ['5','*','3']                 15
4      ['10','*','2','+','2']        22   

问题>&燃气轮机&燃气轮机&燃气轮机

def getBestSequence(self):
    if self.leadTime > 0:
        for j in self.allResult:
            self.BestSequence = [k for k in self.sequence if j == self.goal]
            return 

我希望得到:[22, ['10','*','2','+','2'], 4 ],但我得到了:[10 None 0]注意函数并不总是在时间内得到结果=目标的序列。所以def getBestSequence ()可能返回[]

请指教


Tags: ofselftimedef运算符序列数字result