2016-12-04 112 views
-3

我想問你如何工作。 我發現這個代碼,找出號碼的所有因素:什麼是| =和divmod

def factors(n):  
    result = set() 
    for i in range(1, int(n ** 0.5) + 1): 
     div, mod = divmod(n, i) 
     if mod == 0: 
      result |= {i, div} 
    return result 

我不明白這一點(編輯:現在我知道了):

div, mod = divmod(n, i) 

這(我知道| =按位OR但它是什麼意思?):

result |= {i, div} 

有人可以教我如何工作?

+7

冒着明顯的風險,你看過'divmod'和'set'的文檔,甚至是'help'頁面嗎? – Hurkyl

+0

'divmod'返回兩個值,分配給'div'和'mod'。 – Maroun

+0

'divmod(n,i)'通過i執行n的整數除法,並將結果和其餘部分作爲元組返回。另一行只是'result'集合中元素的in-place結合。 –

回答