亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

a為什么沒變2

http://img1.sycdn.imooc.com//55a89a0d00016ddc01360119.jpg

我只是將a重新賦值了啊(賦值不是生成a和1的地址,將a指向1嗎?)?不是因該(2,)?

正在回答

4 回答

實際上a=1賦值的時候a的內容就是整數1的地址。

t=(a,)開辟的內存空間中,t有一個地址,t[0]的內容就是a的內容,也就是1的地址。所以輸出的時候跳到1那里輸出1。

a=2賦值改變了a的內容,然而沒有改變t的相關東西,t[0]還是1的地址,print t結果還是(1,)

想要達到你的效果要重新定義t,而重新定義這就算不上是改變tuple了

a=1

t=(a,)

print t

a=2

t=(a,)

print t

試了下list里面放變量也是一樣的

a=1

b=2

L=[a,b]

a=3

b=4

print L

出來還是[1,2]。所以list或者tuple跟變量結合在可改變性方面好像沒什么意義的樣子。。。

還有如果是這樣

L=[a,b]

a=1

b=2

程序會報錯,因為開始定義L的時候并不知道a的地址是啥,a作為一個變量內容還是空的。

0 回復 有任何疑惑可以回復我~

http://img1.sycdn.imooc.com//55fa13010001c48601350147.jpg這個問題說明一切。。Python中的每次賦值都是生成一個新額的變量,so 此a非彼a。list類似C++的vector或java的Arraylist之類的。其實現應該是存儲的指針數組,tuple是常量指針,所有指向不可修改,但不是說其中的元素不可修改。當然比如1,2這些最小例子本身就不可修改,這是不可修改的。而list本身是可變對象,可以修改其中的指向。

1 回復 有任何疑惑可以回復我~

和題主有同樣的疑惑。求解答

0 回復 有任何疑惑可以回復我~

t(a,)即t只有一個元素地址是[0],存在這個地址里面的最小分子是'a'...a已經是最終的粒子了 不能改變了, ?課程中之所以改變是因為List本身是個容器 里面盛放的東西可以被替換

0 回復 有任何疑惑可以回復我~
#1

749264幽殤

看清楚再答謝謝。 a是變量。
2015-08-08 回復 有任何疑惑可以回復我~
#2

akira1990 回復 749264幽殤

你才是理解錯了別人的意思了。。。
2015-09-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758392    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

a為什么沒變2

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號