python中賦值語句和增強賦值語句的區別
賦值語句是由賦值表達式再加上分號構成的表達式語句。
其一般形式為: 變量=表達式; 賦值語句的功能和特點都與賦值表達式相同。 它是程序中使用最多的語句之一。
在賦值語句的使用中需要注意以下幾點: 1.由于在賦值符“=”右邊的表達式也可以又是一個賦值表達式,因此,下述形式 變量=(變量=表達式); 是成立的,從而形成嵌套的情形。其展開之后的一般形式為: 變量=變量=…=表達式; 例如: a=b=c=d=e=5;按照賦值運算符的右接合性,因此實際上等效于: e=5; d=e; c=d; b=c; a=b; 2.注意在變量說明中給變量賦初值和賦值語句的區別。
給變量賦初值是變量說明的一部分,賦初值后的變量與其后的其它同類變量之間仍必須用逗號間隔,而賦值語句則必須用分號結尾。 3.在變量說明中,不允許連續給多個變量賦初值。
如下述說明是錯誤的: int a=b=c=5 必須寫為 int a=5,b=5,c=5; 而賦值語句允許連續賦值。 4.注意賦值表達式和賦值語句的區別。
賦值表達式是一種表達式,它可以出現在任何允許表達式出現的地方,而賦值語句則不能。
python中return可以使用賦值語句嗎
在python中,有各種不同類型的語句。
一個python程序是由模塊構成的;一個模塊由一條或多條語句組成;每個語句由不同的表達式組成;表達式可以創建和操作對象。下面來看看python中的語句。
賦值語句: 標識符 = object 判斷語句: if/elif/else 循環相關語句: while/else for/else break continue 類及函數相關語句: class def return yield global lambda object。 method() 異常相關語句: try/except/finally raise 其他語句: print del exec assert pass 首先來看賦值語句。
一個賦值語句由三部分組成,變量標識符、=和賦予標識符的對象。 在python中,任何變量都是引用變量,因此,變量標識符代表的內存空間中其實只是保存了對象的一個引用。
在給一個變量賦值的過程中,也同時創建了這個變量,而并不需要像c中的一樣,要先定義一個變量,然后給它賦值。 賦值語句可以分為兩大類,一種是顯式賦值語句,一種是隱式賦值語句。
先來看顯式賦值語句: L= range(3) [x,y]=[1,2] x,y=[3,4] x,y=5,6 x = y = dict() 這五個語句,可以分為三類,第1行是最為普通的賦值語句。第2 3 4行可以看成是一類,通用模式為 seq1 = seq2,也就是等號兩邊都是一個序列,可以是list tuple還可以是string。
需要注意的是,len(seq1)必須等于len(seq2),否則會出現ValueError。這樣賦值的結果是seq1[0]=seq2[0],seq1[1]=seq2[1]。
。
。第5行表示把x y 賦為dict(),也就是一個空的dictionary。
在這種形式的賦值語句中,賦值過程是從右到左進行的,即先y= dict(),然后再x=y。 隱式賦值會出現在以下六種語句中: import types from types import * for x,y in D。
itertimes() def Test(one, two): pass class Car: pass Test(1,3) 隱式賦值的特點是沒有出現賦值操作符=。 第1行,會引入types。
py中所有對象和變量,比如types。ListType=list、types。
DictType=dict。第2行與第1行類似,會直接引入ListType=list、types。
StringType=str等。第3行,會把x和y,分別賦為x=D。
keys()[0] x=D。keys()[1]。
。
,同時y會變賦為y=D。values()[0] y=D。
values()[1]。
。
第4行,會把Test指向為一個函數對象。第5行,會把Car指向一個“類”對象。
第6行,通過調用一個函數,會把Test(one, two)函數中的形式參數one賦為1,two賦為3,即one =1 two=3。 上面用到的one two Test Car types等等都是標識符,標識符可以用來代表變量、函數名、類名、模塊名等。
標識符的選擇也有一定的規則,三條“軍規”: 第一條:標識符不能與保留字(關鍵字)相同 第二條:標識符是大小寫敏感的 第三條:標識符必須用_或字母開頭,只能由_、字母、數字組成,長度沒有限制。 先來看第一條,這一條可以說是所有計算機語言都會有的一條規則。
在python中保留字有31個。基本上在是組成語句的單詞,比如print del return等。
由于模塊名在引入程序的時候,會自動轉換為變量名,因此模塊的名稱也不能是關鍵字,否則沒有辦法引入。 保留字要與在__builtins__模塊中的一些標識符相互區別,比如list()是在這個模塊中的,其中的list就不是保留字。
第二條,只要記住就行了。 第三條,單個_也是一個合法的標識符,在python交互模式中,它用來表示最后一個表達式的值。
其實在python中,幾乎所有以_開頭的標識符都有特殊的意思,雖然這不是強制性的規定。 以一個_開頭的標識符,比如_D _x 等,在import語句中不被引入,也就是說這種標識符標識的變量和定義是專屬于這個模塊的,在模塊外面是看不到的。
有點類似于c中的private變量和函數。 以兩個_開頭,同時以兩個_結尾的標識符,比如__name__ __main__ __builtins__等,這些變量或函數是由python解釋器調用的。
比如:__builtins__這個模塊就會在python啟動時自動載入。再比如:在一個類型中的__gt__方法由python解釋器調用,當把這個類型用于>的表達式時。
以兩個_開頭,但最后沒有兩個_,比如說:__x,這種標識符是一個類中的內部變量或函數。有點類似于c中的private變量和函數。
在python中也有類似于c中的+= -= *=等復合運算符。算術運算符、位運算符都可以用這種方式進行書寫。
看下面這條語句: >>> L = range(3) >>> L += [3,4] 第二條語句的效果等價于L = L + [3,4],但實際上與它更相同的是L。extend([3,4])。
后一種方式比前一種方式的運行效率要高,也就說采用類似于+=這種復合運算符的時候,python會選擇更有效率的方式進行運算。
轉載請注明出處華閱文章網 » python賦值語句