python元组和列表的问题
第一题:deffunc(arg):arg='hello'var='ok'func(var)print(var)以上为啥输出的是ok?var='ok',为什么func(va...
第一题:
def func(arg):
arg = 'hello'
var = 'ok'
func(var)
print(var)
以上为啥输出的是ok?var = 'ok',为什么func(var),会让arg也指向'ok'?
----------------------
第二题:
def func(arg):
arg[0] = 'hello'
var = ['ok']
func(var)
print(var)
以上为啥输出的是['hello']?这里的arg[0] = 'hello'中arg[0] 是修改列表中的第一段数据为'hello'吧,是不是func(arg)的arg直接=hello了,那和第一题比不加[0]有什么区别?
----------------------
第三题:
def func(arg):
arg = ['hello']
var = ['ok']
func(var)
print(var)
以上为啥输出的是['ok']?
----------------------
三个题目的共同不理解的地方是var在var = 'ok'或者var = ['ok']之前并没有出现过,和之前的代码有什么关联吗?
初学者很多地方不太了解,问题描述有点乱,先谢过答题者,谢谢! 展开
def func(arg):
arg = 'hello'
var = 'ok'
func(var)
print(var)
以上为啥输出的是ok?var = 'ok',为什么func(var),会让arg也指向'ok'?
----------------------
第二题:
def func(arg):
arg[0] = 'hello'
var = ['ok']
func(var)
print(var)
以上为啥输出的是['hello']?这里的arg[0] = 'hello'中arg[0] 是修改列表中的第一段数据为'hello'吧,是不是func(arg)的arg直接=hello了,那和第一题比不加[0]有什么区别?
----------------------
第三题:
def func(arg):
arg = ['hello']
var = ['ok']
func(var)
print(var)
以上为啥输出的是['ok']?
----------------------
三个题目的共同不理解的地方是var在var = 'ok'或者var = ['ok']之前并没有出现过,和之前的代码有什么关联吗?
初学者很多地方不太了解,问题描述有点乱,先谢过答题者,谢谢! 展开
2个回答
展开全部
第一题和第三题是相同的:
给函数传进来一个值 你在函数里用一个'新的'变量修改了传进来的值 但是...
函数里的变量是私有的 只在函数里有作用 外部需要return把值返回才能使用
第二题不一样:
给函数传进来一个列表 然后你*直接*修改了列表第一个元素
如果你在函数里*新建*一个列表再修改 就会像一三一样了
重点:
var = 123 这是定义(或叫新建创建)一个变量 var 赋值 123
var = [123] 这是创建一个列表 列表里有元素 123
var[0] = 123 这是修改列表里的第一个元素为 123
所以 var = 123 和 var[0] = 123 的行为是不同的
给函数传进来一个值 你在函数里用一个'新的'变量修改了传进来的值 但是...
函数里的变量是私有的 只在函数里有作用 外部需要return把值返回才能使用
第二题不一样:
给函数传进来一个列表 然后你*直接*修改了列表第一个元素
如果你在函数里*新建*一个列表再修改 就会像一三一样了
重点:
var = 123 这是定义(或叫新建创建)一个变量 var 赋值 123
var = [123] 这是创建一个列表 列表里有元素 123
var[0] = 123 这是修改列表里的第一个元素为 123
所以 var = 123 和 var[0] = 123 的行为是不同的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询