wap開(kāi)發(fā)詳細(xì)解釋 wap網(wǎng)站開(kāi)發(fā)教程
2024-07-02
更新時(shí)間:2024-07-02 09:04:48作者:未知
通常你所寫出的程序語(yǔ)句(邏輯行)會(huì)包含若干表達(dá)式。 如 2 + 3即為一個(gè)簡(jiǎn)單的表達(dá)式。表達(dá)式由運(yùn)算符與操作數(shù)構(gòu)成。
運(yùn)算符是一些可以用+號(hào)或其他關(guān)鍵詞符號(hào)替代的功能。運(yùn)算符會(huì)對(duì)相關(guān)數(shù)據(jù)進(jìn)行運(yùn)算,這些被運(yùn)算的數(shù)據(jù)稱為操作數(shù)。在上例中,2和3即為操作數(shù)。
運(yùn)算符
我們來(lái)簡(jiǎn)要學(xué)習(xí)一下運(yùn)算符及其用法。
請(qǐng)注意,你可以使用交互式解釋器來(lái)計(jì)算下面示例中的表達(dá)式。例如,要想嘗試表達(dá)式2 + 3,只需使用交互式 Python 解釋器輸入:
下面簡(jiǎn)明地列出了常用的運(yùn)算符:
+ (加)
將兩對(duì)象相加
3 + 5 得 8. ‘a(chǎn)’ + ‘b’ 得 ‘a(chǎn)b’.
– (減)
將一個(gè)數(shù)減去另一個(gè)數(shù),若減號(hào)左邊沒(méi)有數(shù)字,則默認(rèn)作左邊為零。
-5.2 為一個(gè)負(fù)數(shù),而 50 – 24 則等于 26。
* (乘)
得到兩個(gè)數(shù)相乘的值,或者將一個(gè)字符串重復(fù)若干次。
2 * 3 得到 6. ‘la’ * 3 得到 ‘lalala’.
** (乘方)
返回 x 的 y 次冪
3 ** 4 得到 81 (i.e. 3 * 3 * 3 * 3)
/ (除)
x 除以 y
13 / 3 得到 4.333333333333333
// (除且取整)
x 除以 y 并返回小于商的最大整數(shù),注意,如果操作數(shù)之一為浮點(diǎn)數(shù),則返回值必為浮點(diǎn)數(shù)。
13 // 3 得到 4
-13 // 3 得到 -5
9//1.81 得到 4.0
% (取模)
返回作除法之后的余數(shù)。
13 % 3 得到 1. -25.5 % 2.25 得到 1.5.
<< (左移)
將數(shù)字位向左移動(dòng)指定的位數(shù)。每個(gè)數(shù)字在內(nèi)存中用位或二進(jìn)制數(shù)(如 0 和 1 )表示。
2 << 2 得到 8. 2 在二進(jìn)制中用 10 表示。
將 10 向左移兩位得到 1000 ,二進(jìn)制 1000 表示十進(jìn)制的 8 。
>> (右移)
將數(shù)字按位向右移動(dòng)指定的位數(shù)。
11 >> 1 得到 5 。
11 的二進(jìn)制表示為 1011 ,將其右移一位后,得到 101也就是十進(jìn)制的 5 。
& (按位與)
數(shù)字的按位與
5 & 3 得到 1。
| (按位或)
數(shù)字的按位或
5 | 3 得到 7
^ (按位異或)
數(shù)字的按位異或
5 ^ 3 得到 6
~ (按位取反)
x 按位取反是 -(x+1)
~5 得到 -6
< (小于)
返回 x 是否小于 y 。所有的比較運(yùn)動(dòng)算符返回 True 或 False。 注意這些名字的大小寫。
5 < 3 得到 False ,而 3 < 5 得到 True。
比較還可以任意鏈接: 3 < 5 < 7 得到 True。
> (大于)
返回 x 是否大于 y
5 > 3 返回 True。如果兩個(gè)操作數(shù)都是數(shù)字,則首先要做的是將它們轉(zhuǎn)換為相同的類型。否則,它總是返回 False。
<= (小于或等于)
返回 x 是否小于或等于 y
x = 3; y = 6; x <= y 返回 True
>= (大于或等于)
返回 x 是否大于或等于 y
x = 4; y = 3; x >= 3 返回 True
== (等于)
比較一下對(duì)象是否相等
x = 2; y = 2; x == y 返回 True
x = ‘str’; y = ‘stR’; x == y 返回 False
x = ‘str’; y = ‘str’; x == y 返回 True
!= (不等于)
比較一下對(duì)象是否不相等
x = 2; y = 3; x != y 返回 True
not (布爾非)
如果 x 為 True,它會(huì)返回 False。如果 x 為 False,它會(huì)返回 True。
x = True; not x 返回 False.
and (布爾與)
如果 x 為 False , x and y 返回 False 。否則,返回 y 的值
由于 x 為 False , x = False; y = True; x and y 返回 False 。在這種情況下, Python 不會(huì)計(jì)算 y ,因?yàn)樗?‘與’ 表達(dá)式的左邊為 False ,這就意味著整個(gè)表達(dá)式必定是 False。這就是所謂的短路計(jì)算。
or (布爾或)
如果 x 為 True,它會(huì)返回真,否則返回 y 的值
x = True; y = False; x or y 返回 True。這里也用到了短路計(jì)算。
數(shù)學(xué)運(yùn)算和賦值的快捷方式。
對(duì)一個(gè)變量進(jìn)行數(shù)學(xué)運(yùn)算,然后將運(yùn)算結(jié)果賦回給變量,這個(gè)過(guò)程非常常用。于是,對(duì)于這樣的表達(dá)式有一個(gè)快捷方式:
可以簡(jiǎn)寫為:
注意, 變量 = 變量 運(yùn)算符 表達(dá)式 變成了 變量 運(yùn)算符= 表達(dá)式。
計(jì)算順序
如果你有一個(gè)表達(dá)式,如 2 + 3 * 4,是先做加法?還是先做乘法?我們的高中數(shù)學(xué)告訴我們,應(yīng)該先做乘法。這就意味著,乘法運(yùn)算符的優(yōu)先級(jí)比加法運(yùn)算符高。
下表給出了 Python 的優(yōu)先級(jí)表,從最低優(yōu)先級(jí)(最小約束)到最高優(yōu)先級(jí)(最大約束)。這就意味著在給定的表達(dá)式中, Python 會(huì)首先計(jì)算表中較低的運(yùn)算符和表達(dá)式,然后計(jì)算表中較高的運(yùn)算符和表達(dá)式。
lambda :Lambda 表達(dá)式
if – else :條件表達(dá)式
or :布爾或
and :布爾與
not x :布爾非
in, not in, is, is not, <, <=, >, >=, !=, == :比較,包括成員資格測(cè)試和身份測(cè)試
| :按位或
^ :按位異或
& :按位與
<<, >> :移位
+, – :加減法
*, /, //, % :乘除法,取整和取余
+x, -x, ~x :正負(fù)號(hào),按位非
** :求冪
x[index], x[index:index], x(arguments…), x.attribute :訂閱,切片,調(diào)用,屬性引用
(expressions…), [expressions…], {key: value…}, {expressions…} : 綁定或者元組顯示,列表顯示,字典顯示,設(shè)置顯示
我們還沒(méi)有遇到的操作符將在后面的章節(jié)中講解。
具有 相同優(yōu)先級(jí) 的操作符在上表中的同一列中列出。例如 + 和 – 具有相同的優(yōu)先級(jí)。
改變計(jì)算順序
我們可以使用括號(hào),使表達(dá)式更加具有可讀性。例如: 2 + (3 * 4) 顯然比 2 + 3 * 4 更容易理解,因?yàn)楹笳咝枰\(yùn)算符優(yōu)先級(jí)的知識(shí)。和其它事物一樣,括號(hào)要合理適度地使用(不要濫用),并且不要有冗余的括號(hào),像 (2 + (3 * 4)) 就顯得很冗余。
使用括號(hào)還有另外一個(gè)優(yōu)勢(shì)——它能幫助我們改變計(jì)算的順序。例如,如果你想在一個(gè)表達(dá)式中先算加法后算乘法,那么你可以寫成 (2 + 3) * 4 。
關(guān)聯(lián)性
一般而言,操作符從左到右進(jìn)行關(guān)聯(lián)。這意味著具有相同優(yōu)先級(jí)的操作符按照從左到右的方式進(jìn)行計(jì)算。例如, 2 + 3 + 4 計(jì)算順序?yàn)?(2 + 3) + 4 。
表達(dá)式
示例(保存為 expression.py):
輸出:
它的工作原理
矩形的長(zhǎng)和寬分別保存在變量 length 和 breadth 中。在表達(dá)式的幫助下,我們使用長(zhǎng)和寬來(lái)計(jì)算矩形的面積和周長(zhǎng)。我們將表達(dá)式 length * breadth 的計(jì)算結(jié)果保存到變量 area 中,然后用 print 函數(shù)將其打印輸出。第二種情況是,我們直接在 print 函數(shù)中使用表達(dá)式 2 * (length + breadth) 的值。
另外,請(qǐng)注意一下 Python 如何 優(yōu)雅地打印輸出 結(jié)果。盡管我們沒(méi)有指明 ‘Area is’ 與變量 area 之間有一個(gè)空格,但是 Python 會(huì)自動(dòng)加上,這樣我們就可以得到一個(gè)簡(jiǎn)潔漂亮的輸出,并且這樣程序的可讀性會(huì)更強(qiáng)(因?yàn)槲覀儾恍枰獡?dān)心我們要在輸出字符串中如何使用空格)。這是 Python 如何讓程序員的生活變得輕松的一個(gè)例子。
我已經(jīng)知道了如何使用操作符、操作數(shù)和表達(dá)式——這些是任何程序的基本構(gòu)件。
請(qǐng)關(guān)注我?。〗酉聛?lái)再下一章會(huì)介紹使用語(yǔ)句來(lái)了解,如何在我們的程序中使用這些構(gòu)件。