NoneType函数错误

时间:2016-05-28 14:07:14

标签: python function nonetype

首先,抱歉我的英语不好。 我有一个问题,我的函数在执行两次以上时返回一个NoneType错误

def random(k, position, impossible):
    """Permet de générer des case où il n'y a pas encore de navires placé
    et qui soit possible (éviter que le bateau soit sur deux lignes),
    l'argument k correspond au navire en cours de placement
    """
    global cases_occupées_bot
    case = randint(0,99)
    print("Salut !", k, position, case, impossible)
    if k == 0: #porte-avion (5 cases)
        if (position == 0 and 
                len(set((case, case)).intersection(set(impossible))) == 0 and
                len(set((case, case+1, case+2, case+3, case+4)).intersection(
                    set(cases_occupées_bot))) == 0):
            cases_occupées_bot.extend([case, case+1, case+2, case+3, case+4])
            return case
        elif (position == 1 and
                len(set((case, case)).intersection(set(impossible))) == 0 and
                len(set((case, case+10, case+20, case+30,case+40)).intersection(
                    set(cases_occupées_bot))) == 0):
            cases_occupées_bot.extend([case, case+10, case+20, case+30, case+40])
            return case
        else:
            random(k, position, impossible)

为了测试这个功能我使用:

random(0,0,[9,19,29,39,49,59,69,79,89,99,8,18,28,38,48,58,68,78,88,98,7,17,27,37,47,57,67,77,87,97,6,16,26,36,46,56,66,76,86,96])

我想知道它来自哪里,先谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您需要在最后一行返回递归调用的结果。

return random(k,position,impossible)