国产睡熟迷奷白丝护士系列精品,中文色字幕网站,免费h网站在线观看的,亚洲开心激情在线

      <sup id="hb9fh"></sup>
          1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

            手機站
            千鋒教育

            千鋒學習站 | 隨時隨地免費學

            千鋒教育

            掃一掃進入千鋒手機站

            領(lǐng)取全套視頻
            千鋒教育

            關(guān)注千鋒學習站小程序
            隨時隨地免費學習課程

            當前位置:首頁  >  技術(shù)干貨  > python3 中 and 和 or 運算規(guī)律

            python3 中 and 和 or 運算規(guī)律

            來源:千鋒教育
            發(fā)布人:xqq
            時間: 2023-11-05 21:03:49 1699189429

            一、包含一個邏輯運算符

            首先從基本的概念著手,python中哪些對象會被當成False呢?而哪些又是True呢?

            在Python中,None、任何數(shù)值類型中的0、空字符串“”、空元組()、空列表[]、空字典{}都被當作False,還有自定義類型,如果實現(xiàn)了__nonzero__()或__len__()方法且方法返回0或False,則其實例也被當作False,其他對象均為True。

            下面是最簡單的邏輯運算:這里1,2都是Ture;0,‘’都是False

            1and2==>21or2==>1

            1and0==>01or0==>1

            0and1==>00or1==>1

            0and''==>00or''==>''

            總結(jié):

            or從左到右,返回第一個為真的值,都為假返回后一個值

            and從左到右,若所有值均為真,則返回后一個值,有一個假的值,則返回第一個假的值

            二、包含兩個及以上的邏輯運算符

            邏輯運算符and/or一旦不止一個,其運算規(guī)則的核心思想就是短路邏輯。好的,那我們就來了解一下短路思想:

            表達式從左至右運算,若or的左側(cè)邏輯值為True,則短路or后所有的表達式(不管是and還是or),直接輸出or左側(cè)表達式。

            表達式從左至右運算,若and的左側(cè)邏輯值為False,則短路其后所有and表達式,直到有or出現(xiàn),輸出and左側(cè)表達式到or的左側(cè),參與接下來的邏輯運算。

            若or的左側(cè)為False,或者and的左側(cè)為True則不能使用短路邏輯。

            就讓我們從簡單的開始,假設(shè)全是and語句或者全是or語句:

            example1

            defa():

            print('A')

            return[]

            defb():

            print('B')

            return1

            defc():

            print('C')

            return1

            defd():

            print('D')

            return[]

            defe():

            print('E')

            return1

            ifa()andb()andc()andd()ande():

            print('ok')

            a()為假,其后均為and語句,全部短路,最終只返回a()的表達式。記住,所有被短路的表達式均不會被輸出。所以,此處僅僅打印A。

            example2

            defa():

            print('A')

            return1

            defb():

            print('B')

            return1

            defc():

            print('C')

            return[]

            defd():

            print('D')

            return1

            defe():

            print('E')

            return1

            ifa()andb()andc()andd()ande():

            print('ok')

            python從左至右先執(zhí)行a(),a()返回的邏輯值為True,后面是and語句,所以不能短路其后,繼續(xù)與b()進行邏輯運算,a()andb()輸出b()的邏輯值True,接著與c()進行邏輯運算,b()andc()輸出c()的邏輯值False,而其后均為and語句,則全部短路,最終只打印了ABC。

            example3

            defa():

            print('A')

            return1

            defb():

            print('B')

            return1

            defc():

            print('C')

            return[]

            defd():

            print('D')

            return1

            defe():

            print('E')

            return[]

            ifa()orb()orc()ord()ore():

            print('ok')

            a()的邏輯值為True,其后均為or語句,全部短路,最終只打印了A,而if語句為True,所以還要打印一個ok。

            example4

            defa():

            print('A')

            return[]

            defb():

            print('B')

            return[]

            defc():

            print('C')

            return1

            defd():

            print('D')

            return[]

            defe():

            print('E')

            return1

            ifa()orb()orc()ord()ore():

            print('ok')

            python從左至右先執(zhí)行a(),a()返回的邏輯值為False,后面是or語句,所以不能短路其后,繼續(xù)與b()進行邏輯運算,a()orb()輸出b()的邏輯值False,接著與c()進行邏輯運算,b()orc()輸出c()的邏輯值True,而其后為or語句,則全部短路,最終只打印了ABCok。

            下面我們就來講一下and與or語句同時存在的情況:

            example5

            defa():

            print('A')

            return[]

            defb():

            print('B')

            return[]

            defc():

            print('C')

            return1

            defd():

            print('D')

            return[]

            defe():

            print('E')

            return1

            deff():

            print('F')

            return1

            defg():

            print('G')

            return[]

            defh():

            print('H')

            return1

            ifa()andb()andc()andd()ore()andf()org()andh():

            print('ok')

            別以為語句很長就很難,我們好好分析一下,從左至右,首先a()的邏輯值為False,其后到or語句為止有三個and語句:a()andb()andc()andd(),均被短路。只輸出a(),得到a()ore()為True,輸出e(),得e()andF()為True,輸出f(),其后接or語句,則短路其后所有。最終只打印了AEFok。(結(jié)合上面的三點,慢慢分析)

            三.三元運算操作符

            在python2.5之前,python是沒有三元操作符的,GuidoVanRossum認為它并不能幫助python更加簡潔,但是那些習慣了c、c++和java編程的程序員卻嘗試著用and或者or來模擬出三元操作符,而這利用的就是python的短路邏輯。

            三元運算操作符bool?a:b,若bool為真則a,否則為b。

            轉(zhuǎn)化為python語言為:

            boolandaorb

            如何理解呢?首先a,b都為真,這是默認的。如果bool為真,則boolanda為真,輸出a,短路b。如果bool為假,短路a,直接boolorb,輸出b。

            換一種更簡單的寫法:

            returnaifboolelseb

            以上內(nèi)容為大家介紹了python3中and和or運算規(guī)律,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓機構(gòu):千鋒教育。http://parentadvocate.org/

            tags: python培訓
            聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
            10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
            請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
            免費領(lǐng)取
            今日已有369人領(lǐng)取成功
            劉同學 138****2860 剛剛成功領(lǐng)取
            王同學 131****2015 剛剛成功領(lǐng)取
            張同學 133****4652 剛剛成功領(lǐng)取
            李同學 135****8607 剛剛成功領(lǐng)取
            楊同學 132****5667 剛剛成功領(lǐng)取
            岳同學 134****6652 剛剛成功領(lǐng)取
            梁同學 157****2950 剛剛成功領(lǐng)取
            劉同學 189****1015 剛剛成功領(lǐng)取
            張同學 155****4678 剛剛成功領(lǐng)取
            鄒同學 139****2907 剛剛成功領(lǐng)取
            董同學 138****2867 剛剛成功領(lǐng)取
            周同學 136****3602 剛剛成功領(lǐng)取
            相關(guān)推薦HOT