1. 程式人生 > >0 or 1,1 and 0

0 or 1,1 and 0

[] spa 括號 是不是 就是 思路 過大 als ==

最近小編遇到很頭疼的的一件事

就是以下這幾道運算題 ,以下結果是小編經過大量的運算得出的

一.或運算

1.0 or 1

  結果為:1

2.1 or 0

  結果為:1

3.1 or 2

  結果為:1

4.2 or 1

  結果為:2

5.0 or []

  結果為:[]

6.[] or 0

  結果為:0

二.與運算

1.0 and 1

  結果為:0

2.1 and 0

  結果為:0

3.1 and 2

  結果為:2

4.2 and 1

  結果為:1

5.‘ ‘ and 0

  結果為:‘ ‘

6.0 and ‘ ‘

  結果為:0

三.混合運算

1.1 < ( 2 == 2)

  結果為:False 這道題就不用多說了,2==2為True,True換成數字為1,1<1明顯為Flase

2.1 < 2 == 2

  結果為:True

   按照正常思路,比較運算優先級比等於優先級高,所以這道題先算1 < 2 為True,True為1,1不等於2,所以為Flase

  但是,答案明明就是True,實際上這道題是這樣算的:

  1 < 2 and 2 == 2 這樣一轉變,是不是立馬就明白了

  因為邏輯運算優先級低,所以最後運算為:True and True

總結:

  1.or:或運算的兩邊,若有一邊為假,則選真的一邊;若都為真,則選前者;若都為假,則選後者;

  2.and:與運算的兩邊,若有一邊為假,則選假的一邊;若都為真,則選後者;若都為假,則選前者;

  3.混合運算時,應當考慮運算符優先級的問題,當有括號時,先算括號內的運算

0 or 1,1 and 0