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']之前并没有出现过,和之前的代码有什么关联吗?
初学者很多地方不太了解,问题描述有点乱,先谢过答题者,谢谢!
展开
 我来答
gx03abc
2019-03-24 · TA获得超过538个赞
知道小有建树答主
回答量:415
采纳率:83%
帮助的人:189万
展开全部
第一题和第三题是相同的:
给函数传进来一个值 你在函数里用一个'新的'变量修改了传进来的值 但是...
函数里的变量是私有的 只在函数里有作用 外部需要return把值返回才能使用
第二题不一样:
给函数传进来一个列表 然后你*直接*修改了列表第一个元素
如果你在函数里*新建*一个列表再修改 就会像一三一样了
重点:
var = 123 这是定义(或叫新建创建)一个变量 var 赋值 123
var = [123] 这是创建一个列表 列表里有元素 123
var[0] = 123 这是修改列表里的第一个元素为 123
所以 var = 123 和 var[0] = 123 的行为是不同的
hy1397471
2019-03-24 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17154
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部

这个问题是Python变量存储机制的问题。具体描述可以参考这个CSDN的解析:

网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式