2016-11-02 4 views
-1

Ich bin versucht vergleichen meinen Code zu bekommen, den Wert von mostComp jedes Mal zu aktualisieren, es mit einer größeren Menge von Faktoren, die eine Zahl erkennt, aber halte mit einem erfüllt ist:Es kann keine Liste gegen eine Reihe

TypeError: unorderable types: list() > int() 

Der Code, den ich zur Zeit habe, ist wie folgt:

def MostComposite(integers): 
    #The item in sequence 'integers' of positive integers which has 
    #the greatest number of distinct factors, returns None if the sequence is empty. 
    mostComp = 0 
    for i in integers: 
     if (Factors(i)) > 0: 
      mostComp += i 
      if (Factors(i)) > mostComp: 
       mostComp += i 
    return mostComp 
+1

Du vergleichst 'Faktoren (i)' die eine Liste zu '0' zurückgibt, die eine ganze Zahl ist. –

+1

Sie wahrscheinlich wollen 'len (Factors (i))' –

+0

Ich habe seit diesem Problem gelöst, aber der Code gibt immer noch nicht das Element in ganzen Zahlen, die die größte Anzahl von Teilungsfaktoren hat, wenn Sie nichts dagegen haben, könnten Sie Bitte zeigen Sie mir in die richtige Richtung. – Tigerr107

Antwort

0

Es ist nicht möglich, verschiedene Objekttypen zu vergleichen.

Wenn Sie die Länge vergleichen möchten, verwenden Sie len(Factors(i)). Der Code sollte wie folgt aussehen:

def MostComposite(integers): 
    #The item in sequence 'integers' of positive integers which has 
    #the greatest number of distinct factors, returns None if the sequence is empty. 
    mostComp = 0 
    for i in integers: 
     if len(Factors(i)) > 0: 
      mostComp += i 
      if len(Factors(i)) > mostComp: 
       mostComp += i 
    return mostComp 
+0

Hallo, ich habe seit diesem Problem gelöst, aber der Code gibt immer noch nicht das Element in ganzen Zahlen, die die größte Anzahl von Teilungsfaktoren hat, wenn Sie nichts dagegen haben, können Sie bitte zeigen Sie mir in die richtige Richtung. – Tigerr107

Verwandte Themen