python中赋值语句的作用_python中return可以使用赋值语句吗?
在python中,有各種不同類型的語(yǔ)句。一個(gè)python程序是由模塊構(gòu)成的;一個(gè)模塊由一條或多條語(yǔ)句組成;每個(gè)語(yǔ)句由不同的表達(dá)式組成;表達(dá)式可以創(chuàng)建和操作對(duì)象。下面來看看python中的語(yǔ)句。
賦值語(yǔ)句:
標(biāo)識(shí)符 = object
判斷語(yǔ)句:
if/elif/else
循環(huán)相關(guān)語(yǔ)句:
while/else
for/else
break
continue
類及函數(shù)相關(guān)語(yǔ)句:
class
def
return
yield
global
lambda
object。
method()
異常相關(guān)語(yǔ)句:
try/except/finally
raise
其他語(yǔ)句:
del
exec
assert
pass
首先來看賦值語(yǔ)句。一個(gè)賦值語(yǔ)句由三部分組成,變量標(biāo)識(shí)符、=和賦予標(biāo)識(shí)符的對(duì)象。
在python中,任何變量都是引用變量,因此,變量標(biāo)識(shí)符代表的內(nèi)存空間中其實(shí)只是保存了對(duì)象的一個(gè)引用。在給一個(gè)變量賦值的過程中,也同時(shí)創(chuàng)建了這個(gè)變量,而并不需要像c中的一樣,要先定義一個(gè)變量,然后給它賦值。
賦值語(yǔ)句可以分為兩大類,一種是顯式賦值語(yǔ)句,一種是隱式賦值語(yǔ)句。
先來看顯式賦值語(yǔ)句:
L= range(3)
[x,y]=[1,2]
x,y=[3,4]
x,y=5,6
x = y = dict()
這五個(gè)語(yǔ)句,可以分為三類,第1行是最為普通的賦值語(yǔ)句。第2 3 4行可以看成是一類,通用模式為 seq1 = seq2,也就是等號(hào)兩邊都是一個(gè)序列,可以是list tuple還可以是string。
需要注意的是,len(seq1)必須等于len(seq2),否則會(huì)出現(xiàn)ValueError。這樣賦值的結(jié)果是seq1[0]=seq2[0],seq1[1]=seq2[1]。。。。第5行表示把x y 賦為dict(),也就是一個(gè)空的dictionary。
在這種形式的賦值語(yǔ)句中,賦值過程是從右到左進(jìn)行的,即先y= dict(),然后再x=y。
隱式賦值會(huì)出現(xiàn)在以下六種語(yǔ)句中:
import types
from types import *
for x,y in D。itertimes()
def Test(one, two): pass
class Car: pass
Test(1,3)
隱式賦值的特點(diǎn)是沒有出現(xiàn)賦值操作符=。
第1行,會(huì)引入types。py中所有對(duì)象和變量,比如types。ListType=list、types。DictType=dict。第2行與第1行類似,會(huì)直接引入ListType=list、types。StringType=str等。第3行,會(huì)把x和y,分別賦為x=D。
keys()[0] x=D。keys()[1]。。。,同時(shí)y會(huì)變賦為y=D。values()[0] y=D。values()[1]。。。。第4行,會(huì)把Test指向?yàn)橐粋€(gè)函數(shù)對(duì)象。第5行,會(huì)把Car指向一個(gè)“類”對(duì)象。第6行,通過調(diào)用一個(gè)函數(shù),會(huì)把Test(one, two)函數(shù)中的形式參數(shù)one賦為1,two賦為3,即one =1 two=3。
上面用到的one two Test Car types等等都是標(biāo)識(shí)符,標(biāo)識(shí)符可以用來代表變量、函數(shù)名、類名、模塊名等。標(biāo)識(shí)符的選擇也有一定的規(guī)則,三條“軍規(guī)”:
第一條:標(biāo)識(shí)符不能與保留字(關(guān)鍵字)相同
第二條:標(biāo)識(shí)符是大小寫敏感的
第三條:標(biāo)識(shí)符必須用_或字母開頭,只能由_、字母、數(shù)字組成,長(zhǎng)度沒有限制。
先來看第一條,這一條可以說是所有計(jì)算機(jī)語(yǔ)言都會(huì)有的一條規(guī)則。在python中保留字有31個(gè)?;旧显谑墙M成語(yǔ)句的單詞,比如print del return等。由于模塊名在引入程序的時(shí)候,會(huì)自動(dòng)轉(zhuǎn)換為變量名,因此模塊的名稱也不能是關(guān)鍵字,否則沒有辦法引入。
保留字要與在__builtins__模塊中的一些標(biāo)識(shí)符相互區(qū)別,比如list()是在這個(gè)模塊中的,其中的list就不是保留字。
第二條,只要記住就行了。
第三條,單個(gè)_也是一個(gè)合法的標(biāo)識(shí)符,在python交互模式中,它用來表示最后一個(gè)表達(dá)式的值。
其實(shí)在python中,幾乎所有以_開頭的標(biāo)識(shí)符都有特殊的意思,雖然這不是強(qiáng)制性的規(guī)定。
以一個(gè)_開頭的標(biāo)識(shí)符,比如_D _x 等,在import語(yǔ)句中不被引入,也就是說這種標(biāo)識(shí)符標(biāo)識(shí)的變量和定義是專屬于這個(gè)模塊的,在模塊外面是看不到的。有點(diǎn)類似于c中的private變量和函數(shù)。
以兩個(gè)_開頭,同時(shí)以兩個(gè)_結(jié)尾的標(biāo)識(shí)符,比如__name__ __main__ __builtins__等,這些變量或函數(shù)是由python解釋器調(diào)用的。比如:__builtins__這個(gè)模塊就會(huì)在python啟動(dòng)時(shí)自動(dòng)載入。再比如:在一個(gè)類型中的__gt__方法由python解釋器調(diào)用,當(dāng)把這個(gè)類型用于>的表達(dá)式時(shí)。
以兩個(gè)_開頭,但最后沒有兩個(gè)_,比如說:__x,這種標(biāo)識(shí)符是一個(gè)類中的內(nèi)部變量或函數(shù)。有點(diǎn)類似于c中的private變量和函數(shù)。
在python中也有類似于c中的+= -= *=等復(fù)合運(yùn)算符。算術(shù)運(yùn)算符、位運(yùn)算符都可以用這種方式進(jìn)行書寫。
看下面這條語(yǔ)句:
>>> L = range(3)
>>> L += [3,4]
第二條語(yǔ)句的效果等價(jià)于L = L + [3,4],但實(shí)際上與它更相同的是L。extend([3,4])。后一種方式比前一種方式的運(yùn)行效率要高,也就說采用類似于+=這種復(fù)合運(yùn)算符的時(shí)候,python會(huì)選擇更有效率的方式進(jìn)行運(yùn)算。
全部
總結(jié)
以上是生活随笔為你收集整理的python中赋值语句的作用_python中return可以使用赋值语句吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python练习集100题_8道关于py
- 下一篇: python 柱形图 负值_Highch