Skip to content

บทที่ 1.3: ตัวดำเนินการและนิพจน์ (Operators & Expressions)

เอกสารนี้ครอบคลุมตัวดำเนินการทุกประเภทในภาษา Python ลำดับความสำคัญของตัวดำเนินการ (Operator Precedence) และการสร้างนิพจน์เพื่อการประมวลผล


1. ตัวดำเนินการทางคณิตศาสตร์ (Arithmetic Operators)

ใช้สำหรับการคำนวณทางคณิตศาสตร์พื้นฐาน

ตัวดำเนินการ ชื่อเรียก ตัวอย่าง ผลลัพธ์ หมายเหตุ
+ บวก (Addition) 10 + 5 15 ใช้รวมข้อความ (str) หรือ List ได้ด้วย
- ลบ (Subtraction) 10 - 5 5
* คูณ (Multiplication) 10 * 5 50 ใช้ซ้ำข้อความ (str * int) ได้
/ หาร (Division) 10 / 4 2.5 ผลลัพธ์จะเป็น float เสมอ
// หารเอาส่วน (Floor Division) 10 // 4 2 ตัดทศนิยมทิ้ง คืนค่าเป็น int (หาก Operand เป็น int)
% หารเอาเศษ (Modulo) 10 % 3 1 คืนค่าเฉพาะเศษที่เหลือจากการหาร
** ยกกำลัง (Exponentiation) 2 ** 3 8 2 ยกกำลัง 3
# ตัวอย่างการใช้งาน Modulo ตรวจสอบเลขคู่/เลขคี่
number = 7
if number % 2 == 0:
    print("เลขคู่")
else:
    print("เลขคี่")  # Output: เลขคี่

2. ตัวดำเนินการกำหนดค่า (Assignment Operators)

ใช้สำหรับกำหนดค่าหรืออัปเดตค่าให้กับตัวแปร

x = 10     # กำหนดค่าเริ่มต้น

x += 5     # มีค่าเท่ากับ x = x + 5  (ผลลัพธ์: 15)
x -= 3     # มีค่าเท่ากับ x = x - 3  (ผลลัพธ์: 12)
x *= 2     # มีค่าเท่ากับ x = x * 2  (ผลลัพธ์: 24)
x /= 4     # มีค่าเท่ากับ x = x / 4  (ผลลัพธ์: 6.0)
x //= 2    # มีค่าเท่ากับ x = x // 2 (ผลลัพธ์: 3.0)
x %= 2     # มีค่าเท่ากับ x = x % 2  (ผลลัพธ์: 1.0)
x **= 3    # มีค่าเท่ากับ x = x ** 3 (ผลลัพธ์: 1.0)

3. ตัวดำเนินการเปรียบเทียบ (Comparison / Relational Operators)

ใช้สำหรับเปรียบเทียบค่า 2 ค่า ผลลัพธ์ที่ได้จะเป็น bool (True หรือ False) เสมอ

a = 10
b = 20

print(a == b)   # เท่ากับ -> False
print(a != b)   # ไม่เท่ากับ -> True
print(a > b)    # มากกว่า -> False
print(a < b)    # น้อยกว่า -> True
print(a >= 10)  # มากกว่าหรือเท่ากับ -> True
print(b <= 20)  # น้อยกว่าหรือเท่ากับ -> True

# ชาญฉลาดใน Python: Chained Comparison (การเปรียบเทียบแบบต่อกัน)
age = 25
print(18 <= age < 60)  # Output: True (เช็กว่า age อยู่ระหว่าง 18 ถึง 59 หรือไม่)

4. ตัวดำเนินการทางตรรกศาสตร์ (Logical Operators)

ใช้สำหรับเชื่อมเงื่อนไขทางตรรกศาสตร์

ตัวดำเนินการ คำอธิบาย ตัวอย่าง ผลลัพธ์
and คืนค่า True เมื่อเงื่อนไขทั้งสองฝั่งเป็น True (10 > 5) and (5 < 8) True
or คืนค่า True เมื่อมีเงื่อนไขอย่างน้อยหนึ่งฝั่งเป็น True (10 < 5) or (5 < 8) True
not กลับค่าความจริงจาก True เป็น False และในทางกลับกัน not(10 > 5) False

5. ตัวดำเนินการระบุตัวตนและสมาชิก (Identity & Membership Operators)

5.1 Identity Operators (is, is not)

ใช้ตรวจสอบว่าตัวแปรชี้ไปยัง Object เดียวกันในหน่วยความจำ (Memory Address) หรือไม่ (ต่างจาก == ที่เทียบเฉพาะค่า)

list1 = [1, 2, 3]
list2 = [1, 2, 3]
list3 = list1

print(list1 == list2)  # True (ค่าข้างในเหมือนกัน)
print(list1 is list2)  # False (เป็นคนละ Object ใน Memory)
print(list1 is list3)  # True (ชี้ไปยัง Object เดียวกัน)

5.2 Membership Operators (in, not in)

ใช้ตรวจสอบว่ามีข้อมูลที่ต้องการอยู่ใน Sequence (เช่น str, list, tuple, dict) หรือไม่

message = "Hello Python"
numbers = [1, 2, 3, 4, 5]

print("Python" in message)  # Output: True
print(10 not in numbers)    # Output: True

6. ลำดับความสำคัญของตัวดำเนินการ (Operator Precedence)

เรียงลำดับจากความสำคัญ สูงสุด ไป ต่ำสุด (ตัวดำเนินการที่อยู่อันดับบนจะถูกประมวลผลก่อน)

  1. () (วงเล็บ - สูงสุด)
  2. ** (ยกกำลัง)
  3. +x, -x (เครื่องหมายบวก/ลบหน้าตัวเลข)
  4. *, /, //, % (คูณ, หาร, หารเอาส่วน, หารเอาเศษ)
  5. +, - (บวก, ลบ)
  6. ==, !=, >, >=, <, <=, is, is not, in, not in (การเปรียบเทียบ)
  7. not (ตรรกศาสตร์ not)
  8. and (ตรรกศาสตร์ and)
  9. or (ตรรกศาสตร์ or - ต่ำสุด)
# ตัวอย่างนิพจน์
result = 10 + 2 * 5 ** 2

# ขั้นตอนการคำนวณ:
# 1. 5 ** 2 = 25
# 2. 2 * 25 = 50
# 3. 10 + 50 = 60
print(result)  # Output: 60