2017-01-18 1 views
2

Ich erstellte ein Python-Programm, das den Median einer Reihe von Zahlen einrichtet und findet, die ein Benutzer eingibt. Ich bekomme diesen Fehler immer wieder.Übergeben Sie alle Elemente einer Liste durch eine Funktion

Traceback (jüngste Aufforderung zuletzt): Datei "C:/Users/NL-LP3/Desktop/Corses/Python/Tests Programme/Median Benutzer input.py", Zeile 24, in Median (^ Serie) Typeerror: median() nimmt ein Positions Argument aber 4

series=[] 
    finished = False 
    while not finished: 
     number = input("Please enter a number, when you are done hit ENTER") 
     if len(number)>0: 
      series.append([number]) 
      print ("Number Entered")   
     else: 
      finished = True 

    print (series) 

    def median(data): 
     data.sort(key=int) 
     elements = len(data) 
     middle = int(elements/2) 
     if elements%2 ==1: 
      print (data[middle]) 
     else: 
      half = ((data[middle])+(data[middle-1]))/2 
      print (half) 

    median(*series) 

Antwort

2

Drei Fragen hier gegeben wurden:

  1. in einem String in das Array Sie passieren, müssen Sie es auf ein konvertieren int
  2. Sie auf ein Array in einem Array übergeben, die Ihnen eine Ausgabe wie folgt gibt:

    [[5], [6], [7]]

  3. Sie versuchen, Ihren Array zu entpacken indem du die * in deiner * Serie benutzt.

Es muss sich dabei um:

[5, 6, 7] 

Ändern Sie diese Zeile:

series.append(int(number)) 

Sie sind auch in der Anordnung Median wie so passieren müssen nur:

median(series) 
+0

Vielen Dank für die Antwort. Ich bin ein Anfänger bei Python, also hat es wirklich geholfen. – Gocpodin

+0

@ ntlech3 Gern geschehen. – CodeLikeBeaker

0

entpacken Sie Ihre Serie, wie Sie i übergeben t auf Ihre Funktion:

median(*series) 

diese Weise median ist mit allen Elementen in der Liste als Argumente genannt. Was Sie wollen, ist:

median(series) 

verpasste die zweite Ausgabe! lesen Sie Jason Heine's answer ...

Verwandte Themen