2015-03-03 27 views
1

編寫函數average,它接受包含整數元素作爲參數的tuple,並返回參數內元素的平均值。如何編寫接受包含整數元素的元組的函數?

for example, average((1, 2, 3)) = 2 
for example, average((-3, 2, 8, -1)) = 1.5 

我的回答:

def average(values): 
    if values == (1,2,3): 
     return (1+2+3)/3 
    elif values == (-3,2,8,-1): 
     return (-3+2+8-1)/4 

爲什麼錯了?怎麼做? 謝謝!

回答

2

您的功能只適用於這兩個特定輸入。目標是編寫一個函數,爲所有有效輸入返回正確的平均值。

你應該使用Python的內置函數sumlen這個

def average(values): 
    return sum(values)/len(values) 

對於Python 2,你必須包裹sum(values)(或len(values),隔板的任何部分是好的)的調用內部float

從Python 3.4開始,您可以使用函數mean from the statistics module

import statistics 
def average(values): 
    return statistics.mean(values) 

或更短作爲功能進行統計的平均只是另一個名字

average = statistics.mean 
0

嘗試:

In [1]: def average(values): 
    ...:  return float(sum(values))/len(values) 
    ...: 

In [2]: print average((-3,2,8,-1)) 
1.5 

添加floatsum功能爲Python 2

工作
+0

由於問題被標記爲「python3」,浮動調用是不必要的,因爲正常的d i3在Python3中已經做了float division – halex 2015-03-03 06:29:34

+0

好的,謝謝。我不知道... – Aaron 2015-03-03 06:31:50

相關問題