小白听python课求助
听了课有两个问题,小白求助!1.x,y,z=1,2,3 是不是等价于 x=1,y=2,z=3
2. 假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?(题目)
x, y, z = z, y, x(答案)
那我的理解是 答案只是将x和z的值互换了 但没有对y的值产生影响啊 所以y值也还是2呀 对呀,没错呀,可能老师的表达不对吧 鱼cpython学习者 发表于 2021-3-18 21:33
对呀,没错呀,可能老师的表达不对吧
老师的是对的
比如 123 点到 是 321
中间的数不变的 1 是的
2 原理如下:X, Y, Z Z, Y, X
|||-->|||
1, 2, 3 123
其实实现全部互换应该这样:x, y, z = z, x, y
最重要的是,一定要自己敲代码, 多换换变量、值来 试试
>>> x,y,z = 1,2,3
>>> print(x)
1
>>> print(y)
2
>>> print(z)
3
>>> a = 5
>>> b = 9
>>> c = 1
>>> id(a)
1753076240
>>> id(b)
1753076304
>>> id(c) #检查存储位置
1753076176
>>> a,b,c = c,a,b
>>> id(c) #检查存储位置
1753076304
>>> id(b)
1753076240
>>> id(a)
1753076176
>>> print(a,'is a',b,'is b' ,c,'is c')
1 is a 5 is b 9 is c
>>> Hela 发表于 2021-3-18 23:11
最重要的是,一定要自己敲代码, 多换换变量、值来 试试
谢谢 虽然没明白你后面id()是想要表达什么 柿子饼同学 发表于 2021-3-18 22:09
1 是的
2 原理如下:其实实现全部互换应该这样:x, y, z = z, x, y
谢谢 鱼cpython学习者 发表于 2021-3-18 21:33
对呀,没错呀,可能老师的表达不对吧
OKK谢谢 xuexiXX 发表于 2021-3-19 07:29
谢谢 虽然没明白你后面id()是想要表达什么
课程里小甲鱼多次提过,python里的变量可以看作一个标签,6楼代码里的id()是为了让你对比验证这句话。代码里的5,9,1在内存中存储的地址没有发生变化,当你改变X,Y,Z的时候,只是把三个变量标签重新贴了下位置。参看5楼的图示,就很清楚了 atai0622 发表于 2021-3-19 11:32
课程里小甲鱼多次提过,python里的变量可以看作一个标签,6楼代码里的id()是为了让你对比验证这句话。代 ...
明白了,谢谢!
页:
[1]