Python變數賦值方法

2021-10-06 23:57:16 字數 2274 閱讀 9030

python的賦值是通過「=」 將右邊的物件賦值給左邊的變數,如:

a =

'test'

#將字串賦值給變數a

a =123

#將數值賦值給變臉a

a =[1,

2,3]

#將列表賦值給變數a

通過上面的賦值測試,我們會發現變數a是沒有型別的,而型別的區別只存在於右側的物件中。故可以將各種型別的物件賦值給變數。在python內部,對於賦值的實現,本質上是建立將變數指向物件的引用過程,並不是將物件進行複製的過程。賦值過程有以下三個特點:

賦值的過程是建立變數到物件的引用的過程

變數在首次賦值時被建立

變數在引用前必須先賦值

python將=右側序列的值依次和左側的序列中的變數相互對應匹配,給每乙個變數賦值,如:

a,b,c =[1

,2,3

]a,b,c=(1

,2,3

)(a,b,c)=1

,2,3

(a,b,c)=[

1,2,

3]a,b,c=1,

2,3*a,b =1,

2,3#首先滿足非*的變數,剩下的通過列表複製給待*的變數,如果沒有剩下的值,那麼列表為空。其典型應用詳見小技巧4.

所謂序列賦值,指元組、列表這樣的序列可以一次性對序列長度相等的變數進行賦值。數值必須相等。如下面的就要報錯:

a,b=1,

2,3valueerror: too many values to unpack (expected 2

)

不僅僅是元組或列表,只要物件切好是可迭代的,那麼就可以執行分解操作,如分解字串、字典:

a,b,c,d,e =

'hello'

dct =

a,b,c = dct #只是將字典中的key 複製給a,b,c

小技巧1:交換兩變數的值:

a =

1b =

1a,b =b,a #完成a,b值的交換

小技巧2:依次給變數賦值n個整數

a,b,c,d,e,f =

range(6

)

小技巧3:如果=兩邊長度不相等怎麼處理呢?處理如下:

給需要單獨處理的變數前加上*,此時在賦值時如果不能對應,那麼就會通過將乙個列表賦值給該變數,列表中的內容為按序多出來的物件或者空列表

a,b,c=1,

2,3,

4#會報錯

a,b,

*c=1,2

,3,4

#c為[3,4],a,b正常賦值

a,*b,c=1,

2,3,

4#b為[2,3],a,c正常賦值

*a,b,c=1,

2,3,

4#a為[1,2],b,c正常賦值

a,b,c,d,

*e=1,2

,3,4

#e將得到乙個空列表

小技巧4:遞迴求和

p =[1

,10,7

,4,5

,9]#求列表p中個元素之和

defsum_p

(items)

: head,

*tail = items

return head +

sum(tail)

if tail else head

sum_p(p)

#output: 36

就是對多個變數直接賦予乙個初始值,如在程式開始前給多個計數器變數賦值為0:

a=b=c=d=e=

0

此種方式賦值需要注意列表的可變性。

截圖如下了:

解釋乙個例子,其他都類似:

x += y 本質是 x = x + y,先求x+y的和,再將其賦值給x

python變數賦值

從python2.0開始 等號可以和乙個算術操作符組合在一起,將計算結果重新賦值給左邊的變數,這被稱為增量賦值,類似下面的語句 x x 1 現在可以被寫作 x 1增量賦值相對普通賦值不僅僅是寫法上的改變,最有意義的變化是第乙個物件,金盃處理一次,可變物件會被就地修改 無修拷貝引用 不可變物件則和a ...

python 變數賦值

對於變數的內容再去傳遞,傳遞的是物件,有的傳遞物件本身,有的傳遞物件引用。可變資料型別 列表 字典。a 1,2,3 b a c a a 0 8 d 8,2,3 print a 8,2,3 print b 8,2,3 print c 1,2,3 print d 8,2,3 print id a 140...

python賦值中文變數 Python變數引用賦值

不,你不能。正如其他答案所指出的,你可以 ab?使用可變物件的別名來實現類似的效果。然而,這與c 引用不一樣,我想解釋一下實際上發生了什麼,以避免任何誤解。你可以看到,在c 和其他語言 中,變數 和物件字段,以及集合中的條目等 是乙個儲存位置,並且你可以將乙個值 例如,乙個整數 乙個物件或乙個指標 ...