คำสั่ง 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
ผมสงสัยคำสั่ง or ใน Python ครับ
กับกับสั่ง | ในไพธอน (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