2017-03-25 3 views
0

Ich habe Mühe herauszufinden, was genau diese Aufgabe von mir verlangt. Ich habe diese Python-Funktion gebaut, aber ich mache nicht, was der Professor will. Ich bin sehr verwirrt. HierWas muss diese Funktion ausgeben?

ist die Anleitung:

definieren die Funktion extract_negatives: Das erste Argument, xs, enthält ganze Zahlen. Wir werden alle negativen ganzen Zahlen entfernen, die wir in xs finden, und sie an das zweite Argument, new_home, anhängen. Ein Verweis auf die Liste, die Negative erhalten hat, muss zurückgegeben werden. Wenn kein zweites Argument angegeben wird, sollte eine Liste aller extrahierten Negative erstellt und zurückgegeben werden.

Das Herausfinden der Signatur dieser Funktion ist Teil der Aufgabe. Vorsicht: Welchen Standardwert möchten Sie für new_home verwenden? Was passiert, wenn wir die Funktion mehrmals in dieselbe Codierungssitzung aufrufen? (versuchen Sie es) Fahren Sie fort und verwenden Sie Methoden wie .insert(), .pop(), .append()

Sie müssen möglicherweise die Liste iterieren und gleichzeitig aktualisieren. Tipp: Wenn Sie eine Liste von vorne nach hinten durchqueren müssen, aber nicht immer zur nächsten Indexposition gehen möchten, während Schleifen sehr nützlich sein können - wir steuern, wann (welche Iteration) vorwärts geht.

Hier sind Beispiele angegeben:

input: xs = [1, -22,3, -44, -5,6,7] extract_negatives (xs) yeilds: [-22 , -44, -5], um eine Liste von Negativen xs #Return
[1, 3, 6, 7] #remove Negativen von xs

Hier ist die Funktion I gebaut:

Ich habe versucht, den Professor zu fragen, aber es war ein paar Tage ohne Antwort. Vielleicht können Sie helfen, einen Sinn für das zu bekommen, was gefragt wird?

Antwort

1

denke ich, könnte dies das wichtigste, was Sie wissen müssen, wenn es zu spät ist nicht zu. Dieser Codeabschnitt zeigt, wie ermittelt wird, wie viele Positionsparameter übergeben wurden und wie ihre Werte ermittelt werden. In Ihrem Fall, wenn es nur einen Parameter gibt, müssen Sie die Ergebnisliste neu erstellen, wenn zwei, dann müssen Sie Werte an die Liste im zweiten Parameter anhängen.

>>> def extract_negatives(*args): 
...  print (len(args)) 
...  
...  if len(args)==1: 
...   print (args[0]) 
...  elif len(args) == 2: 
...   print (args[0], args[1]) 
...  else: raise RuntimeError('Incorrect number of parameters') 
...   
>>> extract_negatives([1,2,3]) 
1 
[1, 2, 3] 
>>> extract_negatives([1,2,3], [1,0]) 
2 
[1, 2, 3] [1, 0] 
>>> extract_negatives([1,2,3], [1,0], [5,6]) 
3 
Traceback (most recent call last): 
    File "<interactive input>", line 1, in <module> 
    File "<interactive input>", line 8, in extract_negatives 
RuntimeError: Incorrect number of parameters 
1

Was ich verstanden habe ist, dass Sie zwei Szenarien haben. Zuerst wird nur ein Argument übergeben, daher müssen Sie das neue_Home erstellen und es zurückgeben. Zweitens erhalten Sie das new_home als zweites Argument und fügen Sie einfach die Negative an.

Außerdem müssen Sie die Negative von Xs entfernen, die ich nicht glaube, dass Ihr Code jetzt tut.

Für Look variable Argument Größe bei hier: Can a variable number of arguments be passed to a function?

+0

Ich verstehe nicht, wie es funktioniert, wenn das zweite Argument übergeben wird. Wenn ich es einschließe, wird es nicht die ganze Sache beeinflussen? – kg123

+0

Ich habe meinen Code mit dem neuen Argument aktualisiert. – kg123

+0

Sie entfernen die Negative immer noch nicht von xs. Und für die variable Argumentgröße können Sie folgendes betrachten: http: // stackoverflow.com/questions/919680/can-a-variable-Anzahl-Argumente-zu-einer-Funktion übergeben –

Verwandte Themen