注册 登录
编程论坛 Python论坛

Python 函数 参数传递 列表

DrMike 发布于 2017-05-19 11:57, 2274 次点击
在Python里,调用函数,传递参数,原本作为实参的变量传递进去后,原来的变量是不会改变。
比如
x=2
function(2)
调用完后x还是等于2。
但是列表好像不一样啊:
只有本站会员才能查看附件,请 登录

调用完addInterest后,amount里面的值就变了。
老师说,其实是函数addInterest重新创建了一个列表,原来的列表是没变的,amounts仍然指向原来的列表,只不过形式展现为修改后新创建的列表,这句话我就不能理解了,到最后的语句是print(amount),如果amount指向的原来的列表,那应该输出原来的值啊,怎么输出了新的值啊?
2 回复
#2
DrMike2017-05-19 18:59
这帖子要沉了
#3
sunb32017-05-21 10:26
你这个应该执行错误吧?
balances = balances[i] * rate

首先balances是个列表,你用列表值做元素的赋值,理论上你只能得到元素自己计算后的值,也就不是列表了
第二,之所以说是理论上是元素自己计算的值是因为这一句相当于修改了balances的赋值,应该报错
第三,你这句计算的时候类型不统一

你有源码吗?
1