and和or的運算,從前向后按順序計算,當True結果遇到or就停止,返回True;當False結果遇到and就停止,返回False;False遇到or,繼續走;True遇到and,繼續走。
>>> 3 > 2 and 9 > 2 or 7< 9 and 2 < 10 # (3 > 2 and 9 > 2)是True,遇到or后就會直接返回True,or后的表達式不再執行 True >>> 3 > 2 and 2 < 5 or 7< 9 and 2 < 10 # (3 > 2 and 2 > 5)是False,遇到or后就會繼續向下執行,or后的表達式為True,返回True True >>> 3 < 2 or 2 > 5 and 7< 9 and 2 < 10 # (3 < 2 or 2 > 5)是False,遇到and后就會直接返回False,and后的表達式不再執行 False >>> 3 < 2 or 2 < 5 and 7< 9 or 2 < 10 and 10 > 1 # (3 < 2 or 2 < 5)是True,遇到and后就會繼續向下執行,遇到or返回True,or后表達式為True,遇到and,繼續執行,and后為True,最終返回True True
總結:and和or沒有誰先執行或誰后執行,只會按順序向下執行。