亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如果元組tuple為空,那么循環for x in args這個語句有效么?

求大神們幫忙看看,我這個哪里有問題。。 def average(*args): ? ?i=0 ? ?sum=0.0 ? ?for x in *args: ? ? ? ?sum=sum+x ? ? ? ?i=i+1 ? ?if i==0: ? ? ? ?return sum ? ?else ? ? ? ?return sum/i print average() print average(1, 2) print average(1, 2, 2, 3, 4)

正在回答

4 回答

def?average(*args):
????sum?=?0.0
????if?len(args)?==?0:
????????return?sum
????for?x?in?args:
????????sum?=?sum?+?x
????return?sum?/?len(args)
????
print?average()
print?average(1,?2)
print?average(1,?2,?2,?3,?4)

首先, *args 接受不定數量的參數, 在函數中調用的時候,不用星號(*)了, 在函數中調用的時候 args 就是傳入的參數 組成的 元組(tuple).

其次, 有了 len(args) , 就不用另外定義i 并且自加1 了。?

最后,為了防止 發生 除0 的錯誤,進入函數后,第一時間判斷參數長度。

所以, 根據上面三條,理解下正確答案。

0 回復 有任何疑惑可以回復我~
#1

飄神丶 提問者

非常感謝!
2016-04-26 回復 有任何疑惑可以回復我~

有sum函數為什么不用,還非得循環?

def average(*args):

if len(args) == 0:

return 0.0

else:

return sum(args)/len(args)

print (average())

print (average(1,2))

print (average(1,2,2,3,4))


0 回復 有任何疑惑可以回復我~

你的代碼在for循環那邊,去掉*號

def average(*args):

? ? i=0

? ? sum=0.0

? ? for x in args:

? ? ? ? sum=sum+x

? ? ? ? i=i+1

? ? if i==0:

? ? ? ? return sum

? ? else:

? ? ? ? return sum/i

print average()

print average(1,2)

print average(1,2,2,3,4)


0 回復 有任何疑惑可以回復我~
#1

飄神丶 提問者

十分感謝,我發現我的錯誤了!
2016-04-26 回復 有任何疑惑可以回復我~

有點小毛病,看看我寫的對不對

def average(*args):

? ? i=0

? ? sum=0.0

? ? for x in args:

? ? ? ? sum=sum+x

? ? ? ? i=i+1

? ? if i==0:

? ? ? ? return sum

? ? else:

? ? ? ? return sum/i

print average()

print average(1, 2)

print average(1, 2, 2, 3, 4)


0 回復 有任何疑惑可以回復我~
#1

飄神丶 提問者

非常謝謝,我發現我的錯誤了
2016-04-26 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

如果元組tuple為空,那么循環for x in args這個語句有效么?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號