2016-07-27 5 views
0

Also ich versuche, eine Funktion zu erstellen, die das Maximum einer Reihe von Werten von Grund auf neu bestimmt.Erstellen einer Max-Funktion von Grund auf neu (Python)

Ich bin nicht sicher, wie man die Funktion den neuen Wert von Max ändern kann, nachdem ein neues Max gefunden wurde, ich bin auch nicht sicher, ob meine Verwendung von Argumenten korrekt ist.

def Maximum(*args): 
    Max = 0 
    for item in List: 
     if item > Max: 
      item = Max 
    return Max 


List = [1,5,8,77,24,95] 

maxList = Maximum(List) 
print str(maxList) 

Jede Hilfe würde sehr geschätzt werden.

+0

'für Artikel in der Liste' sollte' für Artikel in Args' sein. – Abdou

+1

Ein weiterer Fehler ist, wenn 'args' eine Liste von negativen Zahlen ist, wird es' 0' zurückgeben. Sie können es durch die Fehlerbehandlung beheben, wenn 'args' leer ist, und dann 'Max = args [0] ' – Jae

Antwort

1

Sie haben eine Zeile Code rückwärts. Ihre if-Anweisung sagt effektiv, dass wenn item größer als Max ist, legen Sie item auf Max fest. Sie müssen das umdrehen, um zu sagen, ob der Gegenstand größer als Max ist, und Max auf Gegenstand stellen.

if item > Max: 
    Max = item 
return Max 

Auch ich bin kein Experte in Python, aber ich glaube, Sie brauchen die Liste in Ihrer Funktion zu ändern, um die Parameternamen übereinstimmen, in diesem Fall args.

+1

setzen, sollten Sie' Max' nach der for-Schleife zurückgeben – haifzhan

0

* args = Liste der Argumente -as Positionsargumente

Sie passieren eine Liste als Argument hier. So sollte der Code wie folgt aussehen -

def maximum(nums): 
    Max = 0 
    for item in nums: 
     if item > Max: 
      Max=item 
    return Max 

List = [1,5,8,77,24,95] 
print maximum(List) 

Dies würde Ihnen das Ergebnis: 95.

Auf der anderen Seite Sie die max in Funktion gebaut verwenden können, um die maximale Anzahl in der Liste zu bekommen.

print max(List)