Bu daha büyük bir sorunun yerine çok basit bir koddur, ancak parçalarıyla başa çıkabileceğimi umuyorum. İlk problemimle başlayacağım.Yinelenen işlevler ve ekleme/genişletme listeleri
def testrecurse(z,target):
x=[]
if z<target:
z*=2
x.append(z)
x.extend(testrecurse(z,target))
return x
Bu, beynimin özyinelemesine yardımcı olan bir test işlevidir. Bir sayı alır, daha sonra iki sayıdaki çarpımları hedef sayısına ulaşana kadar gösterir. eğer öyleyse ben girin:
testrecurse(1,1000)
Aldığım:
[2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
harika! Çıkış iyi ve temiz görünüyor. Ama benim problemim, çıktımda bu çok ilk değeri ekleyerek veya ekleyerek zor bir zaman geçiriyorum. Çıktının nasıl görünmesini istediğimi burada görüyorum.
[1,2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
Ben
x=[] to x=[z]
değişen denedim ama sonra alırsınız:
herhangi bir yardım mutluluk duyacağız[1, 2, 2, 4, 4, 8, 8, 16, 16, 32, 32, 64, 64, 128, 128, 256, 256, 512, 512, 1024, 1024]
, ben özyineleme yeniyim ve başımı ağrıtıyor.
2 ile çarpmadan önce ekleyiniz ve 'z
Oh, bunun için teşekkürler, bunu düzeltmek gibi basit bir değişiklik farketmedim. – Unknown