溫馨提示×

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

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

python運(yùn)算符的優(yōu)先級(jí)原來是這樣的

發(fā)布時(shí)間:2020-07-25 07:29:39 來源:網(wǎng)絡(luò) 閱讀:1877 作者:xceliuzy 欄目:編程語(yǔ)言

這算是一篇《避坑文章》

為什么叫避坑呢,起因是自己掉過很多人挖的坑,比如國(guó)內(nèi)轉(zhuǎn)來轉(zhuǎn)去的東西,大多是你抄我我抄你,從最起頭就有問題,抄下去問題或許更多;有些又是因?yàn)榉g的問題,或是因?yàn)榉g造成的理解問題;有些是細(xì)節(jié)問題,一點(diǎn)點(diǎn)不起眼的地方,就引起最終的錯(cuò)誤;有些是版本更新的問題。

所以想來想去,有時(shí)間的時(shí)候就寫寫,希望有人能看到,避免走一些彎路,我的目的就達(dá)到了。

(自己挖的坑暫時(shí)就不提了。。。)


最近想折騰一下python,就從頭開始看了看,因?yàn)檫@樣一道問題:

if not 1 + 1 == y or x == 4 and 7 == 8:

當(dāng)然涉及到了pythone運(yùn)算符的優(yōu)先級(jí),有點(diǎn)不清楚python的運(yùn)算優(yōu)先級(jí),就去查了一下。

結(jié)果發(fā)現(xiàn),好幾個(gè)地方的內(nèi)容是這樣的,我粘了一份過來(從高到低):

運(yùn)算符描述
**指數(shù) (最高優(yōu)先級(jí))
~ + -按位翻轉(zhuǎn), 一元加號(hào)和減號(hào) (最后兩個(gè)的方法名為 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法減法
>> <<右移,左移運(yùn)算符
&位 'AND'
^ |位運(yùn)算符
<= < > >=比較運(yùn)算符
<> == !=等于運(yùn)算符
= %= /= //= -= += *= **=賦值運(yùn)算符
is is not身份運(yùn)算符
in not in成員運(yùn)算符
not and or邏輯運(yùn)算符


實(shí)際上,官方是這樣的(從低到高):

OperatorDescription
lambdaLambda expression
if – elseConditional expression
orBoolean OR
andBoolean AND
not xBoolean NOT
innot inisis not<<=>>=!===Comparisons, including membership tests and identity tests
|Bitwise OR
^Bitwise XOR
&Bitwise AND
<<>>Shifts
+-Addition and subtraction
*@///%Multiplication, matrix multiplication, division, floor division, remainder [5]
+x-x~xPositive, negative, bitwise NOT
**Exponentiation [6]
await xAwait expression
x[index]x[index:index]x(arguments...)x.attributeSubscription, slicing, call, attribute reference
(expressions...)[expressions...]{key: value...},{expressions...}Binding or tuple display, list display, dictionary display, set display

來源:

https://docs.python.org/3/reference/expressions.html#operator-precedence


各位看官發(fā)現(xiàn)區(qū)別沒有?

我第一時(shí)間發(fā)現(xiàn)的問題就是,與或非這3個(gè)運(yùn)算,前面那個(gè)表格在列在同一等級(jí),這明顯與常理不符,所以我才去查了官方資料。

向AI問一下細(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