2016-12-04 16 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 

私はこの(EDIT:今私は知っている):理解していない

div, mod = divmod(n, i) 

そして、これを(私が知っている| =ビット単位のORでありますそれはどういう意味ですか?):

result |= {i, div} 

誰かに教えてもらえますか?

+7

「divmod」と「set」、または単に「help」ページのドキュメントを読んだことがありますか? – Hurkyl

+0

'divmod'は2つの値を返し、それらは' div'と 'mod'に割り当てられます。 – Maroun

+0

'divmod(n、i)'は、nをiで整数除算し、結果&残りをタプルとして返します。もう1つの行は 'result'集合の要素のインプレイス結合だけです。 –

答えて

2

divmodが最初の数字は商であり、第二は余りである2つの要素の引数及び戻りタプルとして2つの数値をとる関数である(https://docs.python.org/2/library/functions.html#divmod

| =(= result.unionをもたらすのに同等です) https://docs.python.org/2/library/sets.html

+0

ありがとう!あなたは何も知っていますか? – tom790

+0

コメントはすでにすべてを説明しています。 –

+0

私はあなたに+を与えましたが、私は15未満の評判しか持っていません;-) – tom790