换了
换一个题目 说是a[0], 代替,不是替换,区别于上面
再换一个----指向和替换的关系
题目5-答案
判断一下,下面的 代码,执行后打印出的结果是 hello, 还是 ok
deffunc(arg):arg ='hello'var ='ok'func(var)print(var)
答: 还是 ‘ok’ 。
var ='ok'
这行代码让变量var 指向了 字符串对象 ‘ok’
func(var)
这行代码调用函数,首先让参数变量arg也指向了 字符串对象 ‘ok’
后面函数里面执行
arg ='hello'
让参数变量arg指向关系发生了改变,它指向了另一个字符串对象 ‘hello’
但是,这不会改变 var指向的对象, var还是指向 字符串对象 ‘ok’
所以调用完后, print(var) 的结果,还是 ‘ok’
判断一下,下面的 代码,执行后打印出的结果是 [‘hello’], 还是 [‘ok’]
deffunc(arg):arg[0] ='hello'var = ['ok']func(var)print(var)
答: 是[‘hello’] 。
var = ['ok']
这行代码让变量var 指向了 列表对象 [‘ok’]
func(var)
这行代码调用函数,首先让参数变量arg也指向了 列表对象 [‘ok’]
后面函数里面执行
arg[0] ='hello'
列表对象因为这行代码 发生了改变。
注意:是变量 arg 指向的列表对象 本身改变了,不是变量 arg 指向关系 发生改变。
所以 外面的 全局变量 var也指向这个列表对象, 列表对象本身改变,自然var 对应的值 也改变了。
判断一下,下面的 代码,执行后打印出的结果是 [‘hello’], 还是 [‘ok’]
deffunc(arg):arg = ['hello']var = ['ok']func(var)print(var)
答: 是[‘ok’] 。
var = ['ok']
这行代码让变量var 指向了 列表对象 [‘ok’]