溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中常見的運(yùn)算符有哪些?有什么差別

發(fā)布時(shí)間:2020-04-22 15:10:07 來(lái)源:億速云 閱讀:1266 作者:小新 欄目:編程語(yǔ)言

python中常見的運(yùn)算符有哪些?其實(shí)和其他大多數(shù)的語(yǔ)言一樣,python 中常用的操作符也有算術(shù)操作符、比較操作符、邏輯操作符,但是又有一些差別,下面小編給大家詳細(xì)介紹。

python中常見的運(yùn)算符有哪些?有什么差別

1. 算術(shù)運(yùn)算符

和其他大多數(shù)的語(yǔ)言一樣,python 也有 +(加)、-(減)、*(乘)、/(除)、%(取余)這 5 個(gè)運(yùn)算符,除此之外還有兩個(gè)特殊的運(yùn)算符,分別是 //(整除)和 **(冪運(yùn)算符,或叫乘方運(yùn)算符)。

這里,+、-、* 的功能和計(jì)算器相同,不再贅述了。

% 運(yùn)算符對(duì)浮點(diǎn)數(shù)也有效,例如:

>>> 3.75 % 0.5
0.25
>>> 3.75 % 2
1.75
>>>

** 運(yùn)算符是進(jìn)行冪(乘方)運(yùn)算的,例如:

>>> 3**2
9
>>> 2**3
8
>>>

需要注意的是 ** 運(yùn)算符和正負(fù)號(hào)(+、-)之間的優(yōu)先級(jí)關(guān)系,** 比其左側(cè)的正負(fù)號(hào)優(yōu)先級(jí)高,比其右側(cè)的正負(fù)號(hào)優(yōu)先級(jí)低?;蛘咧苯泳涂梢哉J(rèn)為 ** 運(yùn)算符比正負(fù)號(hào)優(yōu)先級(jí)高,因?yàn)檎?fù)號(hào)在其右側(cè)時(shí),兩個(gè)符號(hào)在一起,總不能把正負(fù)號(hào)去掉吧。例如:

>>> -3**2
-9
>>> 3**-2
0.1111111111111111
>>>

需要強(qiáng)調(diào)和區(qū)別的是 / 和 // 這兩個(gè)除運(yùn)算符。python 2.7 中,/ 對(duì)于兩個(gè)整數(shù)相除來(lái)說(shuō)是整除,計(jì)算結(jié)果只留下整數(shù)部分,而小數(shù)部分沒(méi)有了,例如:

>>> 3/2
1
>>>

如果想要執(zhí)行普通的除法,即實(shí)現(xiàn)保留計(jì)算結(jié)果的小數(shù)部分,可以用浮點(diǎn)數(shù)進(jìn)行運(yùn)算,例如:

>>> 3.0/2
1.5
>>> 3/2.0
1.5
>>> 3/2.
1.5
>>> 3.0/2.0
1.5
>>>

而在 python 3 中,/ 有所改變,不管是整數(shù)除法還是浮點(diǎn)數(shù)除法,執(zhí)行的都是浮點(diǎn)數(shù)除法,即可以保留計(jì)算結(jié)果的小數(shù)部分。

同時(shí),在 python 2 中實(shí)現(xiàn)保留計(jì)算結(jié)果的小數(shù)部分的另一個(gè)方法是,在程序前加上一句 from __feture__ import division 并執(zhí)行該語(yǔ)句(語(yǔ)句中的 __ 為兩個(gè)下劃線),例如:

>>> from __future__ import division
>>> 3/2
1.5
>>> 5/4
1.25
>>>

此時(shí)的除法運(yùn)算和 python 3 中除法運(yùn)算已經(jīng)是一致的了。

在 python 中還提供了 // 這個(gè)整除運(yùn)算符,它做的是整除,而且對(duì)浮點(diǎn)數(shù)執(zhí)行的也是整除,例如:

>>> 3//2
1
>>> 3.0//2.0
1.0
>>> 5//2.0
2.0
>>>

2. 比較運(yùn)算符

和其他大多數(shù)的語(yǔ)言一樣,python 的比較運(yùn)算符包括 <、<=、>、>=、==、!=。比較運(yùn)算符根據(jù)表達(dá)式的值的真假返回布爾值 True 或 False。例如:

>>> 3 < 4
True
>>> 3 > 4
False
>>> 3 == 4
False
>>> 3 != 4
True
>>>

3. 邏輯運(yùn)算符

邏輯運(yùn)算符就是我們常說(shuō)的與、或、非,在 python 里分別表示為 and、or、not。

使用邏輯運(yùn)算符可以將任意的表達(dá)式連接在一起,并得到一個(gè)布爾值。例如:

>>> 3 < 4 and 3 > 4
False
>>> 3 < 4 or 3 == 4
True
>>> not 3 < 4
False
>>>

在使用邏輯運(yùn)算符時(shí),最需要注意的一點(diǎn)是短路邏輯(或叫做惰性求值),它表達(dá)的意思是:邏輯運(yùn)算是自左向右進(jìn)行的,如果左邊已經(jīng)決定結(jié)果,就不會(huì)再去做右邊的計(jì)算。具體的表示如下:

  • 對(duì)于 x and y,如果 x 為假,則立刻返回 x 的值,而不用去執(zhí)行 y;如果 x 為真,則返回 y 的值

  • 對(duì)于 x or y,如果 x 為真,則立刻返回 x 的值,而不用去執(zhí)行 y;如果 x 為假,則返回 y 的值

例如:

>>> a
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    a
NameError: name 'a' is not defined

>>> 0 and a
0

>>> 0 or a
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    0 or a
NameError: name 'a' is not defined

>>> 6 and a
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    6 and a
NameError: name 'a' is not defined

>>> 6 or a
6
>>>

由于我們提前沒(méi)有定義變量 a,所以執(zhí)行 a 時(shí)是會(huì)報(bào)錯(cuò)的。

  • 對(duì)于 0 and a,由于先判斷 0 為假(程序語(yǔ)言中一般 0 都表示假,非 0 代表真),此時(shí)已經(jīng)能夠決定整個(gè)結(jié)果是假,所以會(huì)直接返回 0 而不去執(zhí)行 a,因而不會(huì)報(bào)錯(cuò)。

  • 對(duì)于 0 or a,先判斷 0 為假,此時(shí)并不能決定整個(gè)結(jié)果是真是假,所以會(huì)繼續(xù)去執(zhí)行 a,因而就會(huì)報(bào)錯(cuò)。

  • 對(duì)于 6 and a,先判斷 6 為真,此時(shí)并不能決定整個(gè)結(jié)果是真是假,所以會(huì)繼續(xù)去執(zhí)行 a,因而就會(huì)報(bào)錯(cuò)。

  • 對(duì)于 6 or 啊,由于先判斷 6 為真,此時(shí)已經(jīng)能夠決定整個(gè)結(jié)果是真,所以會(huì)直接返回 6 而不去執(zhí)行 a,因而不會(huì)報(bào)錯(cuò)。

總結(jié):運(yùn)算符的優(yōu)先級(jí)

下面我們?cè)賮?lái)總結(jié)運(yùn)算符的優(yōu)先級(jí)高低,見下圖:

python中常見的運(yùn)算符有哪些?有什么差別

關(guān)于python中常見的運(yùn)算符有哪些?有什么差別就分享到這里了,當(dāng)然并不止以上和大家分析的辦法,不過(guò)小編可以保證其準(zhǔn)確性是絕對(duì)沒(méi)問(wèn)題的。希望以上內(nèi)容可以對(duì)大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI