在while循环中调用函数的问题

时间:2015-06-23 18:21:00

标签: python while-loop

我不知道这是不是一个简单的问题,但我找不到任何东西,所以我想我会问它。

我尝试在while循环中调用一个函数,但它会一直返回相同的结果,直到条件完成。函数main()从另一个文件导入,并返回一个包含两个元素[a,b]的列表。

这两个元素是随机生成的,因此它们应该在每一步之后改变。如果我自己调用它,该函数可以正常工作。

到目前为止,这是我的代码,我希望有人可以帮助我:

我认为我的列表x出了问题,所以我尝试在每一步后删除它,但它不会改变任何内容。

from some_module import main

def loop(variable):

    i = 0
    while i <= 5 :

        x = main(variable)
        a ,b = x[0], x[1]
        print a, b
        del x[:]
        i += 1

main()的代码是:

def main(file):
    iniciate(file)
    obtain_neighbours(initial_solution())
    get_all_costs(get_all_solutions())
    return get_best_solution()

随机选择出现在函数initial_solution()中:

#those list are being updated at every step
So = []
I_assign = []
I_available = ['1','2','3','4',...,'n']

def initial_solution():

    while len(I_available) != 0:
        update_I_assign()
        random_task = random.choice(I_assign)
        So.append(random_task)
        I_available.remove(random_task)
    return So

def get_best_solution():

    if min(i for i in all_cost) < calculate_cost(fill_station(So)):
         best_solution = solutions[all_cost.index(min(i for i in all_cost))]
         return [min(i for i in all_cost),best_solution]
    else:
        best_solution = fill_station(So)
        return [calculate_cost(fill_station(So)),best_solution] 

我很难在这里展示其余的代码,因为它很长。希望更新能帮助您理解。

0 个答案:

没有答案