2017-05-31 6 views
-5

Schreiben Sie eine Funktionsmitte, die eine Liste L als Argument verwendet, und gibt das Element in der mittleren Position von L zurück, wenn L eine ungerade Länge hat. Ansonsten Mitte 999999. Zum Beispiel zurückkehren sollte, rufen Mitte ([8, 0, 100, 12, 1]) sollte 100 zurückkehrenMittlere Funktion auf Python

das ist, was ich bisher hat:

def middle(L): 
    '''(str) -> str 
    takes L and returns the middle number of the function and if it isnt 
    odd length it returns 999999 

    >>> middle([6, 3 , 8, 34, 56]) 
    8 
    >>> middle([16, 23, 14, 22, 99,]) 
    999999 
    >>> middle([1038, 2732, 29232, 2342, 7565]) 
    29232 
    ''' 
    def middle (L): 
     L= len(0:-1])/2 
    return L 
print (middle) 
+0

Zeigen Sie also Ihre eigenen Versuche für diese Hausaufgaben. – sascha

Antwort

2
def myfunc(mylist): 
    if len(mylist) % 2 == 0: 
     return 999999 
    return mylist[(len(mylist)-1)//2] 
+3

Die 'else'-Klausel ist redundant, wenn der 'if'-Block mit einem' return' innerhalb einer Funktion oder mit einem 'exit' außerhalb einer Funktion endet. Man kann auch einfach die 'else'-Zeile entfernen und eine Ebene der Einrückung ihres Blocks entfernen. –

+1

Beachten Sie auch in Python3 wird dies fehlschlagen. Sie müssen den _true_Divisionsoperator '//' verwenden, um einen ganzzahligen Wert anstelle eines Gleitkommawertes zu erhalten. –

+0

@PauloScardine Der Else-Teil der Aussage könnte für OP verständlicher sein, der offensichtlich neu in der Sprache ist - aber ich bevorzuge Ihre prägnantere Version – Harlekuin

Verwandte Themen