官术网_书友最值得收藏!

1.1.3 a=a+1的意思

要讓計(jì)算機(jī)執(zhí)行算法,必須先用編程語言表達(dá)出來。在開始階段,計(jì)算機(jī)編程中使用的命令可能會(huì)令人困惑,尤其是當(dāng)這些命令與標(biāo)準(zhǔn)的數(shù)學(xué)用法相矛盾時(shí)。例如,許多編程語言(包括Python)都接受以下語句:

1  a = 100
2  a = a + 1

在數(shù)學(xué)上,這毫無道理。第2行是一個(gè)永遠(yuǎn)錯(cuò)誤的斷言。等價(jià)地說,它是一個(gè)沒有解的方程。然而,對于Python,“=”不是相等性判斷,而是要執(zhí)行的指令。這些語句大致有以下含義[2]


[2] 附錄F給出了Python內(nèi)部關(guān)于賦值語句處理的精確信息。

(1)將整數(shù)對象(值為100)賦給名稱a (即變量)。

(2)取出對象a的值。計(jì)算該值與1的和。將結(jié)果賦值給名稱a,并丟棄以前存儲(chǔ)在名稱a下的內(nèi)容。

換句話說,上述等號的作用是指示Python更改其狀態(tài)。而在數(shù)學(xué)符號中,等號的作用是判斷命題真假,命題可能為真,也可能為假。另外,還要注意,Python對命令x=y的左右兩側(cè)有不同的處理,而在數(shù)學(xué)中,等號是對稱的。例如,如果你輸入b+1=a, Python將給出一條錯(cuò)誤消息。賦值語句的左側(cè)必須是一個(gè)名稱,否則右側(cè)求值的結(jié)果無法賦值給左側(cè)。

我們經(jīng)常需要檢查變量是否等于某個(gè)特定值。為了避免賦值和等號二者之間的歧義,Python使用雙等號表示相等關(guān)系:

1  a = 1
2  a == 0
3  b = (a == 1)

這段代碼再次創(chuàng)建變量a,并將一個(gè)數(shù)值賦給它。然后將該數(shù)值與0比較。最后,創(chuàng)建第二個(gè)變量b,并在執(zhí)行另一次比較后為其賦予一個(gè)邏輯值(TrueFalse)。該值可以在或然代碼中使用,我們將在后面看到。

當(dāng)需要== (相等性判斷)時(shí),不要使用= (賦值操作)。

對于編程的初學(xué)者來說,這是一個(gè)常見的錯(cuò)誤。如果發(fā)生此錯(cuò)誤,你可能會(huì)得到不可思議的結(jié)果,因?yàn)?code>=和==都是合法的Python語法。然而,具體到任何特定的情況,只有一個(gè)結(jié)果是你想要的。

主站蜘蛛池模板: 昌乐县| 吐鲁番市| 南陵县| 竹山县| 铜鼓县| 定州市| 五家渠市| 永泰县| 湖南省| 阿克苏市| 林西县| 三明市| 鄂州市| 南投县| 肇源县| 凤冈县| 瓮安县| 德江县| 荔浦县| 留坝县| 泰宁县| 灵山县| 驻马店市| 河池市| 仁化县| 萨嘎县| 壤塘县| 个旧市| 酒泉市| 彝良县| 兴安县| 繁昌县| 二连浩特市| 句容市| 玛多县| 定安县| 泸水县| 奈曼旗| 东乡族自治县| 江津市| 永康市|