On this page
ตัวดำเนินการ (Operators)
เครื่องหมายที่ใช้คำนวณ เปรียบเทียบ และเชื่อมเงื่อนไข — พร้อมลำดับความสำคัญที่ต้องระวัง
ตัวดำเนินการ (operator) คือสัญลักษณ์ที่ใช้กระทำกับค่า เช่น + คูณ เปรียบเทียบ แบ่งเป็นกลุ่มหลัก ๆ ที่ต้องรู้จักทั้งหมด
ตัวดำเนินการเลขคณิต (Arithmetic)
print(7 + 3) # 10 บวก
print(7 - 3) # 4 ลบ
print(7 * 3) # 21 คูณ
print(7 / 3) # 2.333... หาร (ได้ float เสมอ)
print(7 // 3) # 2 หารปัดเศษลง (floor division)
print(7 % 3) # 1 เศษจากการหาร (modulo)
print(2 ** 3) # 8 ยกกำลัง (2 ยกกำลัง 3)| ตัวดำเนินการ | ความหมาย | 7 op 2 ได้ |
|---|---|---|
| + | บวก | 9 |
| - | ลบ | 5 |
| * | คูณ | 14 |
| / | หาร (float) | 3.5 |
| // | หารปัดลง | 3 |
| % | เศษ (modulo) | 1 |
| ** | ยกกำลัง | 49 |
ใช้เช็คเลขคู่/คี่: n % 2 == 0 คือคู่ ใช้เช็คหารลงตัว: n % 5 == 0 คือหาร 5 ลงตัว และใช้วนค่าเป็นวง เช่น (i + 1) % 7 ให้เลขวันในสัปดาห์ 0-6 เทคนิคนี้เจอบ่อยมากในข้อสอบ
ตัวดำเนินการเปรียบเทียบ (Comparison)
ผลลัพธ์ของการเปรียบเทียบเป็น bool (True หรือ False) เสมอ ใช้เป็นเงื่อนไขในบทถัดไป
print(5 == 5) # True เท่ากันไหม (สองตัว! ไม่ใช่ = ตัวเดียว)
print(5 != 3) # True ไม่เท่ากัน
print(5 > 3) # True มากกว่า
print(5 < 3) # False น้อยกว่า
print(5 >= 5) # True มากกว่าหรือเท่ากับ
print(5 <= 4) # False น้อยกว่าหรือเท่ากับ
print("abc" == "abc") # True เปรียบเทียบข้อความก็ได้= (ตัวเดียว) คือ "กำหนดค่า" เช่น x = 5 ส่วน == (สองตัว) คือ "เปรียบเทียบว่าเท่ากันไหม" เช่น x == 5 สับสนสองตัวนี้คือบั๊กยอดฮิตของมือใหม่ทุกคน
ตัวดำเนินการตรรกะ (Logical)
ใช้เชื่อมเงื่อนไขหลายอันเข้าด้วยกัน มี 3 ตัว: and, or, not
age = 20
has_id = True
print(age >= 18 and age < 60) # True (จริงทั้งคู่)
print(age < 13 or age > 65) # False (ไม่จริงสักอัน)
print(not has_id) # False (กลับค่า)
# เชื่อมหลายเงื่อนไขได้
can_enter = age >= 18 and has_id and age < 100
print(can_enter) # True| A | B | A and B | A or B |
|---|---|---|---|
| True | True | True | True |
| True | False | False | True |
| False | True | False | True |
| False | False | False | False |
and = ต้องจริงทั้งหมดถึงจะจริง (เข้มงวด) · or = จริงแค่อันเดียวก็พอ (ใจดี) · not = กลับค่าจริงเป็นเท็จ เท็จเป็นจริง
ตัวดำเนินการกำหนดค่าแบบย่อ (Augmented Assignment)
การอัปเดตค่าตัวเองเขียนย่อได้ ช่วยให้โค้ดสั้นลงและอ่านง่ายขึ้น เจอบ่อยมากในการนับและสะสมค่า
count = 10
count += 5 # เท่ากับ count = count + 5 -> 15
count -= 3 # -> 12
count *= 2 # -> 24
count //= 5 # -> 4
print(count) # 4
text = "Ha"
text += "ha" # ต่อข้อความก็ได้ -> 'Haha'
print(text)ลำดับความสำคัญ (Operator Precedence)
เมื่อมีหลายตัวดำเนินการในบรรทัดเดียว Python ทำตามลำดับเหมือนคณิตศาสตร์: วงเล็บ → ยกกำลัง → คูณ/หาร → บวก/ลบ → เปรียบเทียบ → ตรรกะ ถ้าไม่แน่ใจให้ใส่วงเล็บไว้ ปลอดภัยและอ่านง่ายกว่า
print(2 + 3 * 4) # 14 (คูณก่อน: 2 + 12)
print((2 + 3) * 4) # 20 (วงเล็บก่อน: 5 * 4)
print(10 - 2 ** 2) # 6 (ยกกำลังก่อน: 10 - 4)
print(True or False and False) # True (and ก่อน or)Membership (in) & Identity (is)
อีกสองกลุ่มที่ใช้บ่อยมาก: in เช็คว่า "มีอยู่ในกลุ่มไหม" และ is เช็คว่า "เป็น object เดียวกันไหม" (ต่างจาก == ที่เช็คค่าเท่ากัน)
# in / not in — เช็คสมาชิก (ใช้กับ list, str, dict)
print("a" in "cat") # True
print(3 in [1, 2, 3]) # True
print("x" not in "cat") # True
fruits = ["แอปเปิล", "กล้วย"]
if "กล้วย" in fruits:
print("มีกล้วย")
# is — เช็คว่าเป็น object เดียวกัน (ใช้กับ None เป็นหลัก)
x = None
print(x is None) # True (วิธีมาตรฐานเช็ค None)
print(x == None) # ได้ผลเหมือนกันแต่ไม่นิยม — ใช้ isใช้ == เกือบทุกครั้งที่เทียบค่า ส่วน is ใช้เฉพาะกับ None (x is None) ตามธรรมเนียม Python — อย่าใช้ is เทียบตัวเลข/ข้อความทั่วไป เพราะผลอาจไม่เป็นอย่างที่คิด
สรุปหัวข้อนี้
- เลขคณิต: + - * / // % ** — จำ % ไว้ใช้เช็คคู่/คี่และหารลงตัว
- เปรียบเทียบ: == != > < >= <= ได้ผลเป็น True/False (อย่าสับสน = กับ ==)
- ตรรกะ: and (จริงทั้งหมด), or (จริงอย่างน้อยหนึ่ง), not (กลับค่า)
- กำหนดค่าย่อ: += -= *= //= ช่วยอัปเดตค่าตัวเองสั้นลง
- membership: in / not in เช็คสมาชิก; identity: is ใช้เช็ค None
- ลำดับความสำคัญตามคณิตศาสตร์ — ไม่แน่ใจให้ใส่วงเล็บ
1) รับเลขจาก input() แล้วบอกว่าคู่หรือคี่ด้วย % 2) คำนวณว่า 137 วินาที = กี่นาทีกี่วินาที (ใช้ // และ %) 3) ลองทำนายผลของ 2 + 3 * 4 ** 2 ก่อนรันจริง 4) เขียนเงื่อนไขเช็คว่าปีหนึ่งเป็นปีอธิกสุรทินไหม (หาร 4 ลงตัว และไม่หาร 100 ลงตัว หรือหาร 400 ลงตัว)