0 or 1,1 and 0
阿新 • • 發佈:2018-07-10
[] 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