Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
忽略递归函数Python3.x的实例_Python_Python 3.x_Recursion - Fatal编程技术网

忽略递归函数Python3.x的实例

忽略递归函数Python3.x的实例,python,python-3.x,recursion,Python,Python 3.x,Recursion,如果你能给我一个线索的话,我还没有找到任何解决办法。。 我有这个功能: def analizar_consulta(consulta, v): print('\ntomar consulta: {}\n'.format(consulta)) #transformar todas las variables en su contenido consulta = transformar_variable(consulta, v) if consulta[0] in d

如果你能给我一个线索的话,我还没有找到任何解决办法。。 我有这个功能:

def analizar_consulta(consulta, v):
    print('\ntomar consulta: {}\n'.format(consulta))
    #transformar todas las variables en su contenido
    consulta = transformar_variable(consulta, v)
    if consulta[0] in diccionario_funciones.keys():
        parametros = list(filter(lambda x: not(isinstance(x,list)), consulta[1:]))
        consultas = list(filter( lambda x: isinstance(x,list) , consulta[1:]))
        print('parametros: {}'.format(parametros))
        print('consultas: {}\n'.format(consultas))
        if len(consultas) > 0:
            pasadas = list(map(lambda x: analizar_consulta(x, v), consultas))
            parametros.append(pasadas)
        else:
            return diccionario_funciones[consulta[0]](*parametros)
        return diccionario_funciones[consulta[0]](*parametros)
    else:
        raise Exception('Comando no encontrado')
由于它是递归的,有时它将第一个参数中的参数作为新实例中的新参数,但有时新参数的第一个参数是列表,这会在第5行引起错误(
consulta[0]
) 如果有一个列表(只包含数字),它只返回它,而不是继续执行其余的代码,有没有办法? 对不起,代码是西班牙语的,如果你不懂,我可以编辑它

当我尝试使用
[“compariar”、[“PROM”、“x”]、“>”、[“DESV”、“y”]]
此参数时,它会引发错误:
TypeError:unhable type:“list”

从技术上讲,是的。在第4.5行添加:

c0 = consulta[0]
if isinstance(c0, list) and all(isinstance(i, int) for i in c0):
    return
话虽如此,但您不知道参数列表包含什么,这表明代码中存在设计问题。您刚刚调用了一个函数来对列表进行某种转换:

consulta = transformar_variable(consulta, v)
你为什么不把它修好


考虑看一下整个代码,然后问一个不同的问题:“我该怎么做(不管它是什么)”

请修正缩进。不要说“哪一行在第5行出现错误”,你应该说它产生了什么错误。理想情况下,对完整的错误进行回溯。