最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python運(yùn)算符優(yōu)先級詳細(xì)整理

 更新時間:2023年01月07日 15:32:09   作者:十年的碼爺  
在一個表達(dá)式中可能包含多個有不同運(yùn)算符連接起來的、具有不同數(shù)據(jù)類型的數(shù)據(jù)對象,由于表達(dá)式有多種運(yùn)算,不同的運(yùn)算順序可能得出不同結(jié)果甚至出現(xiàn)錯誤運(yùn)算錯誤,下面這篇文章主要給大家介紹了關(guān)于Python運(yùn)算符優(yōu)先級的相關(guān)資料,需要的朋友可以參考下

前言

雖然本文講的是Python,但其實它也適用于所有的編程語言。因為這里面蘊(yùn)含著編程之魂。所以本文標(biāo)題沒有顯著的使用Python關(guān)鍵詞。當(dāng)然以前的文章用了Python關(guān)鍵詞是因為當(dāng)時我并沒有想到這一點,很多內(nèi)容也適用所有編程語言。

本文是運(yùn)算符相關(guān)教程的最后一篇,將介紹運(yùn)算符的最后一個匯總性的概念——運(yùn)算符的優(yōu)先級。

優(yōu)先級概述

所謂優(yōu)先級,是指優(yōu)先計算的順序。比如小學(xué)中我們學(xué)過的加減乘除基本四則運(yùn)算,乘除要先于加減計算,因為乘除的優(yōu)先級比加減要高。小括號擁有最高優(yōu)先級,如果想先計算加減,可用小括號將其包圍起來,在Python中也是如此,很顯然,計算順序不同,其結(jié)果也是不同的:

相同優(yōu)先級

有些運(yùn)算是互逆的,交換它們的位置不影響運(yùn)算結(jié)果,所以區(qū)分它們的優(yōu)先級是沒有必要的,比如加和減(包括正號和負(fù)號)、乘和除、左移和右移、is與is not、in與not in。這些運(yùn)算符都具有相同的優(yōu)先級。

當(dāng)然,有些運(yùn)算符交換位置會影響結(jié)果,但它們本身只是表示同一種算法的不同結(jié)果,難以區(qū)分不同的優(yōu)先級。比如比較運(yùn)算符中的等于、大于、小于、不等于、大于等于、小于等于都具有相同的優(yōu)先級。

需要特別注意的是,雖然Python支持諸如下例所示的連續(xù)的比較運(yùn)算符:

a > b == c

但它其實是 a > b and b == c 的簡略寫法,而不是表示先進(jìn)行計算 a > b ,然后用結(jié)果判斷是否等于c,也不是判斷a是否大于 b == c 的結(jié)果,下面的示例可以證明這點,無論哪個運(yùn)算符先計算,其結(jié)果都與原始表達(dá)式結(jié)果不同,只有轉(zhuǎn)換成兩個表達(dá)式才一樣(注:False等價于0,True等價于1):

這一點,對于<等其他比較運(yùn)算符,規(guī)則也是如此。

當(dāng)然,大多數(shù)運(yùn)算符的優(yōu)先級是不同的。

結(jié)合性

與運(yùn)算符優(yōu)先級相關(guān)的另一個重要概念是結(jié)合性,它決定了同一種運(yùn)算符是從左往右計算,還是從右往左。下面是一個優(yōu)秀的著名例子:

 它證明乘方運(yùn)算的結(jié)合性是從右往左。

大多數(shù)運(yùn)算符都是從左往右開始計算的,簡稱左結(jié)合性。只有少部分運(yùn)算符具有右結(jié)合性。下面是右結(jié)合性運(yùn)算符列表:

按位取反(位非)、正負(fù)號、位與、邏輯非、賦值系列運(yùn)算符

運(yùn)算符優(yōu)先級一覽表

其中上一行比下一行的優(yōu)先級高,同一行表示優(yōu)先級相同。在同一個表達(dá)式中,按照優(yōu)先級從高到低依次計算,優(yōu)先級相同則按照從左到右的順序計算。同一類型的運(yùn)算符則按結(jié)合性計算。

注:其中@為矩陣乘法運(yùn)算符,大多數(shù)資料中都沒有記錄此運(yùn)算符。官方文檔記錄:“The @ (at) operator is intended to be used for matrix multiplication. No builtin Python types implement this operator.”(@(at)運(yùn)算符打算用于矩陣乘法。沒有任何內(nèi)置的Python類型可以實現(xiàn)此操作符。)

賦值系列運(yùn)算符的優(yōu)先級最低,比or還要低:

另外賦值運(yùn)算符支持連續(xù)的賦值,這和比較運(yùn)算符類似,但其實也是相當(dāng)于兩個分開的賦值,與優(yōu)先級無關(guān):

本表參考于Python3.7.3官方文檔:

Python3.10.4官方文檔也一樣,但是沒有前者友好,順序是相反的:

 運(yùn)算符優(yōu)先級重點說明

運(yùn)算符優(yōu)先級的概念并不需要去刻意地記憶,如果對某個運(yùn)算符的優(yōu)先級不太確定,可以使用小括號將其包圍起來。

當(dāng)然,記住一些重要的優(yōu)先級概念,有助于對程序的閱讀理解與編寫維護(hù)。下面是一些重要的優(yōu)先級:

小括號具有最高優(yōu)先級。

運(yùn)算符優(yōu)先級按類別排序:算術(shù) > 位 > 身份 >成員 > 比較 > 邏輯 > 賦值。 算術(shù)最高,賦值被低。位非運(yùn)算符是個另外,它高于乘除。

身份、成員、比較、賦值運(yùn)算符,同類中優(yōu)先級相同。

算術(shù)運(yùn)算符中:乘方最高,乘除整除取余次之,加減最低。

位運(yùn)算符中:位非 > 左右移 > 位與 > 位異或 > 位或

邏輯運(yùn)算符中:非最高,與次之,或最低。

另外,我沒有聽說過任何編程語言有降低運(yùn)算優(yōu)先級——與小括號功能正好相反的運(yùn)算符。這應(yīng)該是沒有必要的,因為根據(jù)相對性原理,給一個運(yùn)算符最高優(yōu)先級,就相當(dāng)于給其他運(yùn)算符最低優(yōu)先級了,所以,如果想給一個運(yùn)算符最低的優(yōu)先級,可以將其余的運(yùn)算符全部用小括號包圍起來。

最后,除了可以用于提高運(yùn)算符的優(yōu)先級之外,在Python中,小括號還有另外一個重要的功能——做為元組的定界符。

身為Python特有的四大基本數(shù)據(jù)類型之一,元組(tuple)已經(jīng)在本教程中出現(xiàn)過很多次了,在以后還會出現(xiàn)更多次,所以,下一篇將正式介紹元組。敬請關(guān)注。

結(jié)語

通過本文的編寫,我意識到自己對Python的認(rèn)知還有很大的局限——我剛剛才得知Python中有@矩陣乘法運(yùn)算符!

雖然我接觸編程已有14年了,初識Python也有五六年了,使用Python編寫的大大小小的程序工程也有近百個,但是如果不是今天對網(wǎng)上運(yùn)算符優(yōu)先級資料正確性的質(zhì)疑,沒有查看官方文檔的話,不知道還要多少年之后才會得知這一點。

我以前無論找到的與運(yùn)算符相關(guān)還是運(yùn)算符優(yōu)先級相關(guān)的Python資料都沒有提到@,這也說明網(wǎng)上絕大部分的資料的正確性也需要證明。比如關(guān)于乘方運(yùn)算符的右結(jié)合性,網(wǎng)絡(luò)上大多資料都錯誤的記錄為左結(jié)合性。

我寫作這樣的文章也很困難,因為我吹毛求疵的性格要求我必須寫出全網(wǎng)獨(dú)一無二的最優(yōu)秀的精品內(nèi)容,獨(dú)一無二是很容易的,我的任何一篇文章都有自己獨(dú)特的理解,并不是簡單的對其他地方資料的搬運(yùn)整合,最優(yōu)秀就非常困難了,這不僅需要無私的分享精神,更需要卓越的洞察與理解能力,我正在朝這個方向努力。

如果不能做到這一點,我覺得就沒有寫出來的必要,雖然我的文章點擊率很低,但最近的文章都有近十分之一的閱讀收藏率證明了讀者對它的認(rèn)可,這也是頭條給予1萬推薦的原因所在,否則至多100個推薦就到頭了。

到此這篇關(guān)于Python運(yùn)算符優(yōu)先級的文章就介紹到這了,更多相關(guān)Python運(yùn)算符優(yōu)先級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java與Python兩大幸存者誰更勝一籌呢

    Java與Python兩大幸存者誰更勝一籌呢

    Python起源于一種腳本語言,它的語法體現(xiàn)了一種可讀性的理念,具有簡單而規(guī)則的界限,鼓勵簡潔和一致的代碼布局,而Java是一種面向?qū)ο笳Z言,其吸引力和價值所在是其具有的可移植性和相對效率。下面通過本文了解下java python 誰更勝一籌
    2018-04-04
  • python得到windows自啟動列表的方法

    python得到windows自啟動列表的方法

    今天小編就為大家分享一篇python得到windows自啟動列表的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python入門篇之列表和元組

    Python入門篇之列表和元組

    Python包含6種內(nèi)建序列:列表、元組、字符串、Unicode字符串、buffer對象、xrange對象。本篇主要討論最常用的兩種類型:列表、元組
    2014-10-10
  • Python實現(xiàn)圖片尺寸縮放腳本

    Python實現(xiàn)圖片尺寸縮放腳本

    這篇文章主要為大家分享了Python實現(xiàn)圖片尺寸縮放的小腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python解析json代碼實例解析

    Python解析json代碼實例解析

    這篇文章主要介紹了Python解析json代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 完美解決python遍歷刪除字典里值為空的元素報錯問題

    完美解決python遍歷刪除字典里值為空的元素報錯問題

    下面小編就為大家?guī)硪黄昝澜鉀Qpython遍歷刪除字典里值為空的元素報錯問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 深入理解Python 關(guān)于supper 的 用法和原理

    深入理解Python 關(guān)于supper 的 用法和原理

    這篇文章主要介紹了Python 關(guān)于supper 的 用法和原理分析,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2018-02-02
  • Python數(shù)據(jù)可視化詳解

    Python數(shù)據(jù)可視化詳解

    數(shù)據(jù)可視化是一種將龐雜抽象的數(shù)據(jù)轉(zhuǎn)化為直觀易懂的圖形的數(shù)據(jù)呈現(xiàn)技術(shù),它能幫助我們快速把握數(shù)據(jù)的分布和規(guī)律,更加輕松地理解和探索信息,本文通過代碼圖片詳細(xì)介紹了Python數(shù)據(jù)可視化,感興趣的小伙伴可以參考閱讀
    2023-04-04
  • Python 寫了個新型冠狀病毒疫情傳播模擬程序

    Python 寫了個新型冠狀病毒疫情傳播模擬程序

    這篇文章主要介紹了Python 寫了個新型冠狀病毒疫情傳播模擬程序,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • python snownlp情感分析簡易demo(分享)

    python snownlp情感分析簡易demo(分享)

    下面小編就為大家?guī)硪黄猵ython snownlp情感分析簡易demo(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論

临桂县| 嘉黎县| 尼勒克县| 贡嘎县| 鹿泉市| 兴安盟| 淮滨县| 卢龙县| 荣昌县| 辉南县| 清远市| 长岭县| 葫芦岛市| 淄博市| 讷河市| 通海县| 牙克石市| 谷城县| 清苑县| 闵行区| 桃江县| 德保县| 莎车县| 勐海县| 碌曲县| 玉门市| 霍林郭勒市| 长子县| 阿合奇县| 宽甸| 彰化市| 浦县| 上虞市| 金寨县| 温宿县| 林芝县| 隆回县| 日土县| 双牌县| 鲜城| 叙永县|