guess = 0 secretNum = 14 for number in range(1,4): if guess == 0 or guess > 20 : print("數字必須位於1-20之間") continue if guess < secretNum: print("太小啦") elif guess > secretNum: print("太大啦") else: break
guess = 0 secretNum = 14 for number in range(1,4): if guess == 0 | guess > 20 : print("數字必須位於1-20之間") continue if guess < secretNum: print("太小啦") elif guess > secretNum: print("太大啦") else: break
爲什麼兩份代碼就唯一的 or 和 | 的不同,運行結果不一樣?我們之前應該覺得這2個符號是能代替纔對呀?
(1)如果a,b是數值變量, 則 |表示位運算
if表達式相當於:if 0 == 0 | 0 > 20 而
>>> 0 == 0 | 0 > 20 False >>>
所以根本沒有進入if guess == 0 or guess > 20 :裏面的代碼塊去執行代碼。
(2)如果a, b是邏輯變量, 則or 和 | 用法基本一致
>>> (3>0) | (3<1) True >>> (3>0) or (3<1) True >>>
總結:爲了避免出現今天這個錯誤,請在python邏輯判斷需要或連接時候,儘量用or,不要用其他語言用的那個豎|