91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

      手機站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

      千鋒教育

      掃一掃進(jìn)入千鋒手機站

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

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

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

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

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

      一、包含一個邏輯運算符

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

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

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

      1and2==>21or2==>1

      1and0==>01or0==>1

      0and1==>00or1==>1

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

      總結(jié):

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

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

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

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

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

      表達(dá)式從左至右運算,若and的左側(cè)邏輯值為False,則短路其后所有and表達(dá)式,直到有or出現(xiàn),輸出and左側(cè)表達(dá)式到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()的表達(dá)式。記住,所有被短路的表達(dá)式均不會被輸出。所以,此處僅僅打印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()進(jìn)行邏輯運算,a()andb()輸出b()的邏輯值True,接著與c()進(jìn)行邏輯運算,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()進(jìn)行邏輯運算,a()orb()輸出b()的邏輯值False,接著與c()進(jìn)行邏輯運算,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認(rèn)為它并不能幫助python更加簡潔,但是那些習(xí)慣了c、c++和java編程的程序員卻嘗試著用and或者or來模擬出三元操作符,而這利用的就是python的短路邏輯。

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

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

      boolandaorb

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

      換一種更簡單的寫法:

      returnaifboolelseb

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

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