ผมสงสัยคำสั่ง or ใน Python ครับ

คำสั่ง or  ในไพธอน

กับกับสั่ง  | ในไพธอน (Bitwise OR)

ให้ผลลัพธ์ไม่เหมือนกัน  จนผมสับสน


เลยขอความรู้ให้กระจ่างหน่อยครับ

---------------------------------------------------------

ตัวอย่างการใช้คำสั่งนี้
>>> print(4 or 15 or 8)
4
>>> print(4 or 15)
4
>>> print(4 or 8)
4
>>> print(15 or 8)
15
>>> print(4|15|8)
15
>>>



ซึ่ง   คำสั่งอันล่างสุด  ผมเข้าใจครับว่าเป็นการใช้ในระดับบิต
คือ  15 = 1111
        8 = 0100
        4 = 0000
เมื่อผมสั่งให้เอาค่าทั่งสามมา Bitwise OR กันดังนี้  print(4|15|8)
ก็จะได้ 1111(bit)    ซึ่งแปลงเป็นเลขฐานสิบคือ 15


แต่พอลองใช้เป็นคำสั่ง  print(4 or 15 or 8)
ทำไมได้ผลลัพธ์เป็น 4 หว่า

ปล. ลองรันในเทอร์นินัลของลินุกส์มินท์ดังนี้ครับ
(กรอก python3  ในเทอร์มินัล
แล้วจะเข้าไพธอนเชลล์ หลังจากนั้นผมจึงกรอกคำสั่งต่าง ๆ เช่น กรอก  print(4 or 15)     จะได้ผลลัพธ์เป็น 4)

visanu@visanu-H61MGC:~$ python3
Python 3.13.2 (main, Mar 22 2025, 10:59:13) [GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
warning: can't use pyrepl: No module named 'msvcrt'
>>> print(4 or 15)
4
>>> print(4 or 8)
4
>>> print(15 or 8)
15
>>> print(4|15|8)
15
>>> print(4 or 15 or 8)
4
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่