簡體   English   中英

需要幫助理解Python片段。

[英]Need help understanding a Python snippet.

我最近遇到了這個python片段,有人可以告訴我return語句中的for循環是做什么的嗎?

def dec(num, num_dig):
    if num_dig==0:
        return int(num==1)
    else:
        return sum(dec(num/i, num_dig-1) for i in range(1,10) if num/i*i==num)

顯然,問題是關於找不到。 產品等於N的x位數字。謝謝,提前

for循環稱為生成器表達式,類似於列表推導。 您可以將其視為生成一個數字列表,方法是取所有數字在1和9之間,包括條件num/i*i==num為真,然后使用表達式dec(num/i, num_dig-1)轉換這些數字dec(num/i, num_dig-1)

然后取所有這些最終數字的總和。

寫這個的另一種方法,更簡潔,更少Pythonic,但如果你來自系統語言可能會更清楚:

total = 0
for i in range(1,10):
   if num/i*i == num:
     total += dec(num/i, num_dig-1)
return total

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM