2017-05-31 90 views
-5

編寫一個以列表L爲參數的函數middle,當L的長度爲奇數時,返回L的中間位置的項。否則,中間應返回999999例如,調用中間([8,0,100,12,1])應該返回100Python上的中間函數

這是我有什麼到目前爲止:

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

因此,請展示您自己的作業嘗試。 – sascha

回答

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

如果'if'塊在函數內部以'return'結尾,或在函數外部以'exit'結尾,'else'子句是多餘的。也可以刪除'else'行並刪除其中的一個縮進級別。 –

+1

另請注意,在Python3中,這將失敗。您需要使用_true_除法運算符'//'來獲取整數值,而不是浮點值。 –

+0

@PauloScardine聲明的其他部分對於顯然是新語言的OP來說可能更容易理解 - 但我更喜歡你的簡潔版本 – Harlekuin