2016-12-04 2 views
-3

Ich möchte Sie fragen, wie | = funktioniert. fand ich diesen Code alle Faktoren der Zahl zu finden:Was ist | = und 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 

ich diesen (EDIT: jetzt weiß ich): verstehen nicht,

div, mod = divmod(n, i) 

Und das (ich weiß | = bitweise OR aber was es bedeutet?):

result |= {i, div} 

Kann mir jemand beibringen, wie es funktioniert?

+7

Auf die Gefahr der Angabe der offensichtlichen, haben Sie die Dokumentation für 'divmod' und' set', oder auch nur die 'help' Seite angesehen? – Hurkyl

+0

'divmod' gibt zwei Werte zurück, und diese werden' div' und 'mod' zugewiesen. – Maroun

+0

'divmod (n, i)' führt eine ganzzahlige Division von n mit i durch und gibt das Ergebnis und den Rest als Tupel zurück. Die andere Zeile ist nur eine direkte Vereinigung von Elementen im 'result'-Set. –

Antwort

2

divmod ist eine Funktion, die zwei Zahlen als Argumente und gibt Tupel von 2 Elementen gibt erste Zahl ist der Quotient und der zweite Rest dauert (https://docs.python.org/2/library/functions.html#divmod)

|. = Entspricht = result.union führen()

+0

Danke! Weißt du was | = ist auch? – tom790

+0

die Kommentare erklären schon alles. –

+0

Ich gab dir + aber ich habe weniger als 15 Ruf ;-) – tom790

Verwandte Themen