日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python中賦值的含義及說明_python

作者:vanlywang ? 更新時間: 2022-12-27 編程語言

Python中賦值的含義

在C++中,變量就是對象本身,對變量賦值就改變了它代表的對象。

而在Python中,賦值的含義卻是關聯變量名字和實際對象,即變量指向了實際對象,當對變量再次賦值時,變量原來指向的對象并不會改變(其實對象的reference count會減1),而是變量指向了新的對象而已。

所以這還導致了一個后果,當多個變量指向同一個對象時,那么用其中一個變量修改對象后,其它指向同一對象的變量也“被改變”了。

下面的代碼清楚地顯示了這一點:

>>> a = [0, 1, 2, 3]
>>> b = a
>>> a
[0, 1, 2, 3]
>>> b
[0, 1, 2, 3]
>>> a[0] = 99
>>> a
[99, 1, 2, 3]
>>> b
[99, 1, 2, 3]
>>> a = [5, 6, 7, 8]
>>> a
[5, 6, 7, 8]
>>> b
[99, 1, 2, 3]      

Python賦值語句的多種形式

Python語言本身有許多獨特之處, 入門易難精通(另一個角度看,簡單但強勁的語法背后隱藏了許多復雜的實現),現以Python賦值語句的多種形式為例說明。

賦值語句的特性

賦值語句創建對象引用,而不是對象復制;

變量在首次賦值時會被創建,不必提前預聲明變量名;

變量在引用前必須先賦值;

執行隱式賦值的一些操作,如: 模塊導入、函數和類的定義、函數參數、for循環變量。

運算

解釋

spam = 'Spam'

基礎(basic)形式

spam, ham = 'yum', 'YUM'

元組賦值(基于位置)

[spam, ham] = ['yun', 'YUM']

列表賦值(基于位置)

a, b, c, d = 'Spam'

推廣的(generalized)序列賦值

a, *b = 'Spam'

擴展序列解包(Unpacking:解包、拆包)

spam = ham = 'lunch'

多目標(multiple target)賦值

spam += 42

增強(augmented)賦值

上表取自《Python學習手冊》表 11-1

基礎(basic)形式

常見,如:

a=123

元組賦值(元組解包賦值)

a, b, c= 1, 2, "john"

等同于 (a, b, c) = (1, 2, "john")

兩個整型對象1和2的分配給變量 a 和 b,字符串對象 "john" 分配給變量 c。元組可以省略括號。

也是一種交換兩個變量的值,卻不需要自行創建臨時變量的方式,見后邊“Python中交換兩個變量的值”法二。

列表賦值(列表解包賦值)

[x, y, z] = [10, 20, 30]

推廣的(generalized)序列賦值

可以為多個對象指定多個變量。任何序列或其它可迭代的值可以付給長度相同的名稱序列。如:

a, b, c = 'xyz'

參見下圖:

擴展序列解包(Extended sequence unpacking)

帶星號前綴的變量名字,可以收集未被匹配的元素項。如:

a, *b, c = [1, 2, 3, 4]

參見下圖:

多目標(multiple target)賦值

Python允許你同時為多個變量賦值。例如:

a = b = c = 2

以上實例,創建一個整型對象,值為2,三個變量被分配到相同的內存空間上。

增強(augmented)賦值

除+=外,還有-=、*=、/=、%=、**=、//=

【簡要說明】

運算符

描述

功效

+=

加法賦值運算符

c += a 等效于 c = c + a

-=

減法賦值運算符

c -= a 等效于 c = c - a

*=

乘法賦值運算符

c *= a 等效于 c = c * a

/=

除法賦值運算符

c /= a 等效于 c = c / a

%=

取模賦值運算符

c %= a 等效于 c = c % a

**=

冪賦值運算符

c **= a 等效于 c = c ** a

//=

取整除賦值運算符

c //= a 等效于 c = c // a

Python中交換兩個變量的值

假設

x = 10

y = 20

法一: 創建臨時變量,并交換

臨時變量 temp ,將 x 的值存儲在 temp 變量中,接著將 y 值賦給 x,最后將 temp 賦值給 y 變量。

temp = x

x = y

y = temp

法二:不使用臨時變量,python特有的,利用元組賦值

x, y = y, x

原文鏈接:https://blog.csdn.net/m0_46463996/article/details/108001481

欄目分類
最近更新