あと変数確認とどこまで処理したかをかねてprintいれたほうがいいですよ spfuncは各spごとに処理を関数として割り当てられます いちいちspが存在してるかたしかめて存在していたらspを動かすっていう面倒なものがかなり省けます