看板 Python 關於我們 聯絡資訊
各位版上的大大早安 今天看到一段有趣的程式碼如下 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
Django: not就是把False/True的值反轉再來判斷 06/18 10:32
Django: 不過那一行沒加括弧看起來毛毛的 06/18 10:33
LessonWang: 優先順序 not>and>or 06/18 10:34
LessonWang: not 1+1==y 是False 06/18 10:36
LessonWang: x==4 and 7==8 是False 06/18 10:36
LessonWang: False or False 是False 06/18 10:37
yimean: 所以當if判斷式後方的結果是False就不會執行下方的內容 06/18 10:38
yimean: 嗎? 06/18 10:38
LessonWang: 也就是 ((not 1+1==y) or (x==4 and 7==8)) 06/18 10:40
LessonWang: if 後面的運算式 只有True才會執行 06/18 10:41
yimean: 了解 感謝解惑 06/18 13:27
fischcheng: 咦,elif冒號後面沒indent當然會顯示no啊 06/19 02:16