天才教育網(wǎng)合作機構 > 北京辦公軟件培訓機構 > 北京excel培訓機構 >

天才領路者

歡迎您!
朋友圈

400-850-8622

全國統(tǒng)一學習專線 9:00-21:00

位置:北京辦公軟件培訓資訊 > 北京excel培訓資訊 > 終于理會python如何賦值

終于理會python如何賦值

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

python如何賦值

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