再帰を適切に機能させる方法や、無限に繰り返さないようにする方法がわかりません。これは私がこれまでに持っているものです:
def listSquareR(lst):
if len(lst)== 1:
return lst[0]**2
else:
return lst[0]**2+[listSquareR(lst[1:])]
最後の戻り行は明らかに間違っています
再帰を適切に機能させる方法や、無限に繰り返さないようにする方法がわかりません。これは私がこれまでに持っているものです:
def listSquareR(lst):
if len(lst)== 1:
return lst[0]**2
else:
return lst[0]**2+[listSquareR(lst[1:])]
最後の戻り行は明らかに間違っています
ほぼ正しいと思いますが、重要なのは自分のタイプに注意することです。あなたのコードで:
def listSquareR(lst):
if len(lst)== 1:
return lst[0]**2 # Returning a number
else:
return lst[0]**2+[listSquareR(lst[1:])] # Returning a number plus a list of a list
2 つの小さな修正が必要です。
def listSquareR(lst):
if len(lst)== 1:
return [lst[0]**2] # Returning a list
else:
return [lst[0]**2] + listSquareR(lst[1:]) # Returning a list plus a list
def SquareArea(width):
if width == 0:
return 0
else:
return SquareArea(width-1) + (2*width-1)
これは、正方形の面積を求めるために最近使用した再帰関数です。また、正方形の面積は Side*Side であるため、これを使用して任意の関数の正方形を見つけることができます。あとは、ループを作成するだけです。たとえば、次のようになります。
for i in range (list):
この関数を i に実装するか、while ループを使用することもできます。
newList=[]
length = len(list)
while i != length:
newList.append(SquareArea(i))
そして、newListを返します