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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 使用 While 循環求和 Neg 值

Python 使用 While 循環求和 Neg 值

慕桂英546537 2021-12-29 18:15:54
我正在嘗試使用while循環編寫代碼來對列表中的所有負數求和。我得到 -10 而不是 -17。知道為什么嗎?謝謝!# sum all the negative numbers using a while loopgiven_list3 = [7, 5, 4, 4, 3, 1, -2, -3, -5 ,-7]total6 = 0i = 0while -1 < 0:        total6 += given_list3[i]        i += -1        if given_list3[i] > 0:            breakprint(total6)
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

各種錯


在-1 < 0沒有意義,它不會終止

你break當你發現第一個消極因素

你應該做類似的事情


index = 0


while index < len(lst):

    value = lst[index]


    if value > 0:

        continue


    total += value


    index += 1

請注意,在 python 中,直接迭代值更為常見


for value in lst:

    if value >= 0:

        total += value

或使用列表理解


total = sum([x for x in lst if x >= 0])


查看完整回答
反對 回復 2021-12-29
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您應該放置一個調試器并逐步執行執行的每一行。您將看到添加的第一個值是numbers[0],它是正數7。從那時起,它就像您期望的那樣工作;它循環返回并添加數字,直到找到一個正數,然后退出。


您可以使用諸如和 之類的高階函數來使您的代碼更加優雅且不易出錯。filtersum

numbers = [7, 5, 4, 4, 3, 1, -2, -3, -5 ,-7]
sum(filter(lambda x: x<0, numbers))


查看完整回答
反對 回復 2021-12-29
?
森林海

TA貢獻2011條經驗 獲得超2個贊

試試下面的代碼,


  l=[1,2,3,-1,-4]

  i=-1

  total=0

  while l[i]<0:

      total+=l[i]

      i-=1

  print(total)


查看完整回答
反對 回復 2021-12-29
  • 3 回答
  • 0 關注
  • 226 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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