簡體   English   中英

循環中 function 的 *args(非關鍵字參數)的數量 n 不正確

[英]Incorrect number n of *args (Non-Keyword Arguments) at function in for cycle

我是一個菜鳥,試圖完成一些任務並遇到了問題。 我必須使用 *args(非關鍵字參數)計算 function 中的算術平均值(我希望這是一個正確的定義)。

所以我有這個

def avsum(*numbers):
summ = 0
print('Numbers', numbers)    
for n in numbers:
    summ += n
print('Calc', summ)
print('n', n)
print('Numbers', numbers)
result = summ / (n - 1)
return result


print(avsum(2, 3, 4))

所有這些打印只是為了控制和理解發生的事情。 終端顯示:

Numbers (2, 3, 4)
Calc 9
n 4
Numbers (2, 3, 4)
3.0

據我研究,*數字是非關鍵字 arguments 並且它們是元組。 所以在元組數字中,我有 3 個元素(數字 (2, 3, 4)),但由於某種原因 n 是 4。 我已經將算術平均值設為 sum / (n - 1) ,但它看起來像是一個奇怪的解決方案。 任何想法為什么會這樣? 為什么 n 不是 3? 謝謝回復。

for n in enumerate(numbers):語句中的值 n 是 for 循環的局部變量,它在循環之外不存在,因此在嘗試語句result = summ / (n - 1)時,您是很可能會收到與未定義變量 n 相關的錯誤。 要糾正此錯誤,請執行以下操作: result = summ/len(numbers)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM