บทที่ 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)
เรียงลำดับจากความสำคัญ สูงสุด ไป ต่ำสุด (ตัวดำเนินการที่อยู่อันดับบนจะถูกประมวลผลก่อน)
()(วงเล็บ - สูงสุด)**(ยกกำลัง)+x,-x(เครื่องหมายบวก/ลบหน้าตัวเลข)*,/,//,%(คูณ, หาร, หารเอาส่วน, หารเอาเศษ)+,-(บวก, ลบ)==,!=,>,>=,<,<=,is,is not,in,not in(การเปรียบเทียบ)not(ตรรกศาสตร์ not)and(ตรรกศาสตร์ and)or(ตรรกศาสตร์ or - ต่ำสุด)