朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專(zhuān)線 9:00-21:00

位置:北京辦公軟件培訓(xùn)資訊 > 北京excel培訓(xùn)資訊 > 終于理會(huì)python如何賦值

終于理會(huì)python如何賦值

日期:2019-08-25 12:22:41     瀏覽:615    來(lái)源:天才領(lǐng)路者
核心提示:賦值語(yǔ)句其實(shí)在例子中經(jīng)常使用,其中包括對(duì)變量和一些數(shù)據(jù)結(jié)構(gòu)的元素進(jìn)行賦值;但是賦值方法不止這些,還有如序列解包、鏈?zhǔn)劫x值和增量賦值等方法,那么python如何賦值呢?一起來(lái)了解下吧:?python如何賦值??python的賦值,尤其是涉及到
賦值語(yǔ)句其實(shí)在例子中經(jīng)常使用,其中包括對(duì)變量和一些數(shù)據(jù)結(jié)構(gòu)的元素進(jìn)行賦值;但是賦值方法不止這些,還有如序列解包、鏈?zhǔn)劫x值和增量賦值等方法,那么python如何賦值呢?一起來(lái)了解下吧: ? python如何賦值 ?

python如何賦值

? python的賦值,尤其是涉及到兩個(gè)變量時(shí)候二者之間有某種計(jì)算關(guān)系的時(shí)候,可以省去臨時(shí)變量。 ? 比如C語(yǔ)言中的一段: ? temp=n ? n=n+m ? m=temp ? 就可以在python中簡(jiǎn)單寫(xiě)作: ? m,n=n,n+m ? Python如何*最小賦值 ? 碼代碼時(shí),有時(shí)候需要根據(jù)比較大小分別賦值: ? import random ? seq = [random.randint(0, 1000) for _ in range(100)] ? #方法1: ? xmax, xmin = max(seq), min(seq) ? #方法2: ? xmax, *_, xmin = sorted(seq) ? 從上面這個(gè)來(lái)看,看不出來(lái)方法2的優(yōu)勢(shì)來(lái),不過(guò)我們常用的是比較兩個(gè)數(shù)的大小,并選?。? ? dx, dy = random.sample(seq, 2) ? #方法1: ? dx, dy = min(dx, dy), max(dx, dy) ? #方法2: ? dx, dy = sorted((dx, dy)) ? Python如何選擇賦值 ? 兩個(gè)對(duì)象做比較有兩種方式,分別是:is與 == ,is比較的是兩個(gè)對(duì)象是否相同,通過(guò)對(duì)象的ID值可識(shí)別是否為相同對(duì)象,==比較的是兩個(gè)對(duì)象的值是否相等。 ? x1 = [1,2,1] ? x2 = [1,2,1] ? print(x1 is x2) ? print(x1 == x2) ? print(id(x1)) ? print(id(x2)) ? False ? True ? 2004573077256 ? 2004573077448 ? ? 上面我們對(duì)x1和x2進(jìn)行賦值,相對(duì)于給兩個(gè)變量分別取了名字x1和x2,兩個(gè)名字雖然都是列表[1,2,1],但在內(nèi)存中是兩個(gè)獨(dú)立的不同的對(duì)象,占據(jù)不同的內(nèi)存空間,就好比兩個(gè)名字一樣的人,實(shí)則為兩個(gè)不同的人。 ? x3 = x2 ? print(x2 is x3) ? True ? 上面我們將x2對(duì)應(yīng)的對(duì)象綁定了一個(gè)新的名字叫x3,這就好比一個(gè)人,開(kāi)始給他取了一個(gè)x2的大名,后來(lái)又給他取了一個(gè)x3的小名,本質(zhì)上還是同一個(gè)人,所以,x2和x3所指的其實(shí)是同一個(gè)對(duì)象。 ? 通過(guò)x2修改對(duì)象時(shí),x3也會(huì)跟著變化,因?yàn)楸举|(zhì)上它們是同一個(gè)對(duì)象,這就好比一個(gè)人大名x2,小名x3,x2長(zhǎng)了一歲相對(duì)于x3也長(zhǎng)了一歲。 ? x2.append(2) ? print(x2) ? print(x3) ? [1, 2, 1, 2] ? [1, 2, 1, 2] ? 但是,當(dāng)我們給x2重新賦值時(shí),相當(dāng)于x2不再引用之前的對(duì)象,而引用新對(duì)象,x3依然引用之前的對(duì)象。好比一個(gè)人的大名x2和小名x3,給x2重新賦值就相當(dāng)于給另外一個(gè)人取大名x2,但是x3還是開(kāi)始那個(gè)人的小名。 ? x2 = [3,4,3] ? print(x2) ? print(x3) ? [3, 4, 3] ? [1, 2, 1, 2] ? python的賦值和賦址 ? python的數(shù)字和字符串的值是不變的(元祖也是不可變的),所以當(dāng)一個(gè)變量(數(shù)字或字符串)進(jìn)行值改變的操作時(shí),其實(shí)是新開(kāi)辟了一個(gè)地址來(lái)存放這個(gè)新值。? ? 例如: ? >>>a=2 ? >>>b=a ? >>>a=3 ? >>>b ? 當(dāng)執(zhí)行a=3時(shí),其實(shí)是新開(kāi)辟了一塊內(nèi)存空間來(lái)存放3,并且把索引a從2那邊解除,指向了存放3的內(nèi)存地址。所以? ? a的值是3,但是b還是2。因?yàn)閎依舊指向2所在的內(nèi)存空間。 ? 再來(lái)看看其他非數(shù)字和字符串的操作,例如列表, ? >>>a=[2] ? >>>b=a ? >>>a.append(3) ? >>>b ? [2,3] ? 當(dāng)執(zhí)行a.append時(shí),因?yàn)榱斜淼闹凳强梢宰兓?,所以就在原?lái)的存放a的內(nèi)存地址改變了a的值,由于a,b? ? 是指向同一地址空間的索引,所以當(dāng)此內(nèi)存地址所存儲(chǔ)的值被改變時(shí),打印b時(shí),b的值也變化了。 ?
如果本頁(yè)不是您要找的課程,您也可以百度查找一下: