บทที่ 3

การคำนวณและตัวดำเนินการ

Math & Operators

เรียนรู้การคำนวณและการเปรียบเทียบใน Python

🎯 จุดประสงค์การเรียนรู้

• เข้าใจตัวดำเนินการทางคณิตศาสตร์

• สามารถคำนวณในโปรแกรมได้

• เข้าใจลำดับการทำงาน

• ใช้การเปรียบเทียบและตรรกะได้

ตัวดำเนินการทางคณิตศาสตร์

🧮 การคำนวณพื้นฐาน

Python สามารถทำการคำนวณได้เหมือนเครื่องคิดเลข

+

บวก (Addition)

result = 5 + 3
print(result)  # 8
-

ลบ (Subtraction)

result = 10 - 4
print(result)  # 6
*

คูณ (Multiplication)

result = 6 * 7
print(result)  # 42
/

หาร (Division)

result = 15 / 3
print(result)  # 5.0
💡 สังเกต: การหาร (/) จะได้ผลเป็น Float เสมอ แม้จะหารลงตัว

ตัวดำเนินการขั้นสูง

//

หารเอาจำนวนเต็ม

result = 17 // 5
print(result)  # 3

หารแล้วตัดทศนิยมทิ้ง

%

หารเอาเศษ (Modulo)

result = 17 % 5
print(result)  # 2

เศษที่เหลือจากการหาร

**

ยกกำลัง (Power)

result = 2 ** 3
print(result)  # 8

2³ = 2×2×2 = 8

( )

วงเล็บ

result = (5 + 3) * 2
print(result)  # 16

ทำในวงเล็บก่อน

🔢 ตัวอย่างการใช้งานจริง

Modulo (%): เช็คเลขคู่-คี่ เช่น number % 2 == 0 = เลขคู่

Power (**): คำนวณพื้นที่ เช่น side ** 2 = พื้นที่สี่เหลี่ยม

Floor (//): แบ่งของเท่าๆ กัน เช่น candy // kids

ลำดับการทำงาน

🎯 กฎ PEMDAS

Python คำนวณตามลำดับความสำคัญ เหมือนคณิตศาสตร์ทั่วไป

# ตัวอย่างลำดับการคำนวณ
result1 = 2 + 3 * 4        # คูณก่อน: 2 + 12 = 14
result2 = (2 + 3) * 4      # วงเล็บก่อน: 5 * 4 = 20
result3 = 2 ** 3 * 4       # ยกกำลังก่อน: 8 * 4 = 32
result4 = 10 - 6 + 2       # ซ้ายไปขวา: 4 + 2 = 6

print(result1)  # 14
print(result2)  # 20
print(result3)  # 32
print(result4)  # 6

📋 ลำดับความสำคัญ (สูง → ต่ำ)

1. ( ) วงเล็บ

2. ** ยกกำลัง

3. * / // % คูณ หาร หารเอาจำนวนเต็ม หารเอาเศษ

4. + - บวก ลบ

5. เมื่อความสำคัญเท่ากัน: ทำจากซ้ายไปขวา

🏃‍♂️ ทดสอบความเข้าใจ

result = 6 + 4 * 2 - 3 ได้ผลลัพธ์เท่าไหร่?

คำตอบ: 11 (6 + 8 - 3 = 11)

ตัวดำเนินการเปรียบเทียบ

⚖️ เปรียบเทียบค่า

ใช้เปรียบเทียบตัวเลข ข้อความ หรือตัวแปร ได้ผลเป็น Boolean (True/False)

==

เท่ากับ

print(5 == 5)    # True
print(3 == 7)    # False
!=

ไม่เท่ากับ

print(5 != 3)    # True
print(4 != 4)    # False
>

มากกว่า

print(8 > 5)     # True
print(3 > 9)     # False
<

น้อยกว่า

print(4 < 7)     # True
print(9 < 2)     # False
# ตัวอย่างการใช้งานกับตัวแปร
age = 16
passing_score = 60
my_score = 75

is_adult = age >= 18                    # False
passed_exam = my_score >= passing_score  # True
failed = my_score < passing_score     # False

การเปรียบเทียบเพิ่มเติม

≥ ≤ มากกว่าหรือเท่ากับ / น้อยกว่าหรือเท่ากับ

# >= มากกว่าหรือเท่ากับ
print(5 >= 5)    # True
print(7 >= 5)    # True
print(3 >= 5)    # False

# <= น้อยกว่าหรือเท่ากับ
print(5 <= 5)    # True
print(3 <= 5)    # True
print(7 <= 5)    # False

🔤 เปรียบเทียบ String

# เปรียบเทียบข้อความ
name1 = "Alice"
name2 = "Bob"

print(name1 == "Alice")   # True
print(name1 != name2)     # True
print(name1 < name2)      # True (A < B)

🎯 ตัวอย่างการใช้งานจริง

เช็คอายุ: age >= 18 เป็นผู้ใหญ่หรือไม่

เช็คคะแนน: score >= 80 ได้เกรด A หรือไม่

เช็ครหัสผ่าน: password == "1234" ถูกต้องหรือไม่

เช็คเลขคู่: number % 2 == 0 เป็นเลขคู่หรือไม่

⚠️ ข้อควรระวัง: การเปรียบเทียบ String ใน Python จะเรียงตามตัวอักษร (A < B < C...)

ตัวดำเนินการทางตรรกะ

🤔 รวมเงื่อนไขหลายตัว

ใช้เมื่อต้องการเช็คหลายเงื่อนไขพร้อมกัน

and

และ (ทั้งสองต้องเป็นจริง)

age = 20
score = 85
result = age >= 18 and score >= 80
print(result)  # True

ผู้ใหญ่ และ คะแนนดี

or

หรือ (อย่างใดอย่างหนึ่งเป็นจริง)

rain = True
cold = False
stay_home = rain or cold
print(stay_home)  # True

ฝนตก หรือ อากาศหนาว

not

ไม่ (กลับค่า)

is_weekend = False
is_workday = not is_weekend
print(is_workday)  # True

ไม่ใช่วันหยุด = วันทำงาน

( )

วงเล็บจัดกลุ่ม

a = True
b = False
c = True
result = a and (b or c)
print(result)  # True

ควบคุมลำดับการทำงาน

📊 ตารางความจริง

and: True and True = True | อื่นๆ = False

or: False or False = False | อื่นๆ = True

not: not True = False | not False = True

ตัวอย่างการใช้งานจริง

🎮 สถานการณ์จริงในชีวิตประจำวัน

มาดูการใช้ตัวดำเนินการในโปรแกรมจริง

# ตัวอย่าง 1: เช็คสิทธิ์การดูหนัง
age = 16
has_parent = True

can_watch = age >= 13 and (age >= 18 or has_parent)
print("สามารถดูหนังได้:", can_watch)  # True

# ตัวอย่าง 2: คำนวณเกรด
midterm = 75
final = 82
assignment = 90

total_score = (midterm * 0.3) + (final * 0.5) + (assignment * 0.2)
passed = total_score >= 60
honor = total_score >= 80

print("คะแนนรวม:", total_score)
print("ผ่าน:", passed)
print("เกียรตินิยม:", honor)

🏃‍♂️ ลองทำดู

สร้างโปรแกรมเช็คว่าสามารถขับรถได้หรือไม่:

• อายุ >= 18 และ มีใบขับขี่ = ขับได้

• หรือ อายุ >= 15 และ มีผู้ปกครองติดตาม = ขับได้

ตัวดำเนินการกำหนดค่า

📝 ทางลัดในการคำนวณ

ใช้เมื่อต้องการเปลี่ยนค่าตัวแปรโดยคำนวณจากค่าเดิม

วิธีปกติ

score = 80

score = score + 5    # 85
score = score - 3    # 82
score = score * 2    # 164
score = score / 4    # 41.0
score = score ** 2   # 1681.0

ทางลัด

score = 80

score += 5           # 85
score -= 3           # 82
score *= 2           # 164
score /= 4           # 41.0
score **= 2          # 1681.0
# ตัวอย่างการใช้งานจริง
money = 1000
print("เงินเริ่มต้น:", money)

money += 500          # ได้เงินเพิ่ม 500 บาท
print("หลังได้เงิน:", money)    # 1500

money -= 200          # จ่ายเงิน 200 บาท
print("หลังจ่าย:", money)      # 1300

money *= 2            # เงินเพิ่มเป็น 2 เท่า
print("หลังเพิ่ม 2 เท่า:", money)  # 2600
💡 ข้อดี: เขียนสั้นลง อ่านง่าย และลดโอกาสผิดพลาดในการพิมพ์ชื่อตัวแปร

โปรเจกต์รวม: เครื่องคิดเลขอัจฉริยะ

🧮 สร้างเครื่องคิดเลขที่ทำได้หลายอย่าง

ใช้ความรู้ทั้งหมดเกี่ยวกับการคำนวณและตัวดำเนินการ

# โปรแกรมเครื่องคิดเลขอัจฉริยะ
print("=== เครื่องคิดเลขอัจฉริยะ ===")
print("กรุณาใส่ตัวเลข 2 ตัว")

# รับข้อมูล
num1 = float(input("ตัวเลขที่ 1: "))
num2 = float(input("ตัวเลขที่ 2: "))

# การคำนวณพื้นฐาน
add_result = num1 + num2
sub_result = num1 - num2
mul_result = num1 * num2
div_result = num1 / num2 if num2 != 0 else "ไม่สามารถหารด้วย 0 ได้"
power_result = num1 ** num2

# การเปรียบเทียบ
is_equal = num1 == num2
is_greater = num1 > num2
both_positive = num1 > 0 and num2 > 0

# แสดงผลลัพธ์
print("\n=== ผลการคำนวณ ===")
print("บวก:", add_result)
print("ลบ:", sub_result)
print("คูณ:", mul_result)
print("หาร:", div_result)
print("ยกกำลัง:", power_result)

print("=== การเปรียบเทียบ ===")
print("เท่ากัน:", is_equal)
print(num1, "มากกว่า", num2, ":", is_greater)
print("เป็นบวกทั้งคู่:", both_positive)

🎯 สิ่งที่เรียนรู้ในบทนี้

คำนวณ: +, -, *, /, //, %, **

เปรียบเทียบ: ==, !=, >, <, >=, <=

ตรรกะ: and, or, not

ลำดับการทำงาน: วงเล็บ ยกกำลัง คูณหาร บวกลบ

ทางลัด: +=, -=, *=, /=, **=

🏆 ความท้าทายเพิ่มเติม

ลองเพิ่มฟีเจอร์:

• คำนวณค่าเฉลี่ย ค่าสูงสุด ต่ำสุด

• เช็คว่าเป็นจำนวนเฉพาะหรือไม่

• คำนวณดอกเบิ้ย หรือ ภาษี

• สร้างเกมทายตัวเลข