2017-07-20 14 views
0

私は再帰を理解しようとしています。私は理解を確認するために小さなコードを作成しました。残念ながら、私の関数はリストの要素を出力しません。再帰関数はリストを出力しません

list=['zero','one','two','three',0,1,2,3] 

def rekur(list): 
    for element in list: 
     if isinstance(element,int): 
      rekur(list) 
     else: 
      print(element) 
+1

期待される出力は何ですか? – Mureinik

答えて

2

あなたはこの機能を呼び出すことはありません。

# Function 

def rekur(list): 
    for element in list: 
     if isinstance(element,int): 
      rekur(list) 
     else: 
      print(element) 

# Main program 

list=['zero','one','two','three',0,1,2,3] 
rekur(list) 

WARNING:あなたは無限再帰を持っているあなたは、1行を必要としています。整数に達すると、リスト全体が元の形で繰り返されます。私はどのような目的を持っているのかわからないので、整数が再帰のケースになるので、これをどのように修正するのか分かりません。現在のプログラムは、呼び出しスタックをオーバーフローするまで、

zero 
one 
two 
three 
zero 
one 
two 
three 
zero 
... 

を放出します。

+0

興味深い。私はこれを止める方法を見つけようとします。その唯一の関数と私は無作為にintを選択して印刷します。 – Kempa

+0

問題は、intにヒットしたときに、元のコールを繰り返して、前からやり直すことです。おそらくあなたは 'rekur(list [:element])'に興味があるでしょう。これはリストの最初の 'elements'アイテムだけで繰り返されます。 – Prune

関連する問題