[問題] if邏輯判斷問題

看板Python作者 (溫柔殺手)時間8年前 (2017/06/18 01:54), 編輯推噓4(408)
留言12則, 4人參與, 最新討論串1/1
各位版上的大大早安 今天看到一段有趣的程式碼如下 x=4 y=2 if not 1+1==y or x==4 and 7==8: print("yes") elif x>y: print("no") 執行結果是"no" 我的問題在於if邏輯運算式的結果應該是True or Fales 而not在這邊指的不是反邏輯運算子嗎? 也就是說在我看起來if判斷式是沒有完成的因為沒有對等的比較運算元。 我是不是誤會了些什麼? 可否請高手指導,感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.99.225 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1497750889.A.BF5.html

06/18 10:32, , 1F
not就是把False/True的值反轉再來判斷
06/18 10:32, 1F

06/18 10:33, , 2F
不過那一行沒加括弧看起來毛毛的
06/18 10:33, 2F

06/18 10:34, , 3F
優先順序 not>and>or
06/18 10:34, 3F

06/18 10:36, , 4F
not 1+1==y 是False
06/18 10:36, 4F

06/18 10:36, , 5F
x==4 and 7==8 是False
06/18 10:36, 5F

06/18 10:37, , 6F
False or False 是False
06/18 10:37, 6F

06/18 10:38, , 7F
所以當if判斷式後方的結果是False就不會執行下方的內容
06/18 10:38, 7F

06/18 10:38, , 8F
嗎?
06/18 10:38, 8F

06/18 10:40, , 9F
也就是 ((not 1+1==y) or (x==4 and 7==8))
06/18 10:40, 9F

06/18 10:41, , 10F
if 後面的運算式 只有True才會執行
06/18 10:41, 10F

06/18 13:27, , 11F
了解 感謝解惑
06/18 13:27, 11F

06/19 02:16, , 12F
咦,elif冒號後面沒indent當然會顯示no啊
06/19 02:16, 12F
文章代碼(AID): #1PHTrflr (Python)