![](/img/trans.png)
[英]SyntaxError: non-keyword arg after keyword arg in arguments function
[英]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.