我很抱歉提出愚蠢的问题。
我正在通过视频和书籍学习 Python,真的没有其他帮助。
无法弄清楚基本 python 编程的简单差异。
#######################################AAAAAA costs = [5,10,15,20]
def sum_cart(item):
total_cost = 0
for this in costs:
this = this + total_cost
return total_cost
print sum_cart(costs)
#######################################BBBBBB
def sum_cart(item):
total_cost = 0
for this in costs:
total_cost = this + total_cost
return total_cost
print sum_cart(costs)
########################################CCCCCC
def sum_cart(item):
total_cost = 0
for this in costs:
total_cost = this + total_cost
return total_cost
print sum_cart(costs)
- - - - - -问题 - - - - - -
结果是 A --> 0, B --> 50, C --> 5
我仍然很困惑为什么结果显示为原样。
如果我的理解是正确的,在 A 中,'this' 从列表中获取 5,并将 5 添加到 total_cost,即 0。'this' 然后分别调用 10、15 和 20,'this' 得到一个新值。但是,因为 total_cost 还是 0,所以结果是 0。我说的对吗?
然后在 B 中,当调用 'this' = 5 并添加到当前的 'total_cost' = 0 时更新总成本,即 5。循环返回并分别引入 10、15 和 20 以及 'total_cost'已更新到 50。到目前为止,我认为还不错。
但是在 C 中,我不确定发生了什么,因为当 'this' 从列表中引入 5 值时,'total_cost' 会更新。然后它应该将'total_cost'返回到5。for循环不应该返回并执行total_cost = this(假定为10)+total_cost(当前为5)并再次执行循环吗?我对“返回”功能缺少什么?