1. พื้นฐานการใช้เงื่อนไขใน Python
Python เป็นภาษาการเขียนโปรแกรมที่เรียบง่ายแต่ทรงพลัง และหนึ่งในโครงสร้างที่สำคัญที่สุดคือการใช้เงื่อนไข (Conditional Statement) เพื่อควบคุมการทำงานของโปรแกรม บทความนี้จะแนะนำพื้นฐานการใช้เงื่อนไขใน Python รวมถึงวิธีแทนที่ switch
statement
เงื่อนไข (Conditional Statement) ใน Python คืออะไร?
การใช้เงื่อนไขใน Python คือการควบคุมการทำงานของโปรแกรมตามเงื่อนไขที่กำหนด เช่น เมื่อค่าของตัวแปรเปลี่ยนไป โปรแกรมสามารถเลือกการทำงานที่แตกต่างกันได้ โดยใน Python ใช้คำสั่ง if
เพื่อทำสิ่งนี้
โครงสร้างพื้นฐานของ if-elif-else
โครงสร้างเงื่อนไขของ Python เขียนได้ดังนี้:
x = 10
if x > 5:
print("x มีค่ามากกว่า 5")
elif x == 5:
print("x เท่ากับ 5")
else:
print("x น้อยกว่า 5")
ในโค้ดนี้ ถ้า x
มากกว่า 5 จะพิมพ์ข้อความ “มากกว่า 5” หากไม่ใช่ จะตรวจสอบเงื่อนไขถัดไป และสามารถใช้ elif
เพิ่มได้เมื่อมีหลายเงื่อนไข
ทำไม Python ถึงไม่มี switch statement
ภาษาส่วนใหญ่มี switch
statement เพื่อเลือกทำงานตามค่าตัวแปร แต่ Python ไม่มี เหตุผลคือ Python เน้น “ความเรียบง่ายและชัดเจน” การใช้ if-elif-else
ก็เพียงพอที่จะทำงานเดียวกันได้

2. เหตุผลที่ Python ไม่มี switch
นักออกแบบภาษา Python หลีกเลี่ยงไวยากรณ์ที่ซับซ้อน เพื่อให้โค้ดอ่านง่าย แม้ว่า switch
จะสะดวก แต่ Python สามารถใช้ if-elif-else
แทนได้
แนวคิด “โค้ดที่เรียบง่าย” ของ Python
ปรัชญาของ Python คือ “Simple is better” จึงลดการใช้ไวยากรณ์ที่ซ้ำซ้อน และใช้ if-elif-else
อย่างยืดหยุ่นแทน
ตัวอย่าง if-elif-else แทน switch
day = "วันอังคาร"
if day == "วันจันทร์":
print("วันนี้วันจันทร์")
elif day == "วันอังคาร":
print("วันนี้วันอังคาร")
else:
print("วันไม่ถูกต้อง")
วิธีนี้สามารถทำงานได้ แต่ถ้าเงื่อนไขเยอะ โค้ดจะยาวขึ้น ควรหาวิธีที่มีประสิทธิภาพกว่า
3. วิธีแทน switch ใน Python
เนื่องจาก Python ไม่มี switch
เราสามารถใช้วิธีอื่น เช่น dict
(Dictionary) หรือ match
(ตั้งแต่ Python 3.10 เป็นต้นไป)
การใช้ Dictionary แทน switch
def case_one():
return "นี่คือเคส 1"
def case_two():
return "นี่คือเคส 2"
switch_dict = {
1: case_one,
2: case_two
}
x = 1
print(switch_dict.get(x, lambda: "เคสไม่ถูกต้อง")())
การใช้ Dictionary ทำให้โค้ดสั้น กระชับ และอ่านง่ายกว่า if-elif-else
ข้อดีและข้อควรระวังของ Dictionary
ข้อดีคืออ่านง่ายและจัดการหลายเงื่อนไขได้ดี แต่ใช้ได้กับกรณีที่ตรงไปตรงมา หากเงื่อนไขซับซ้อนควรใช้ if-elif-else

4. match case (Python 3.10+)
Python 3.10 เพิ่ม match
ซึ่งทำงานคล้าย switch
ของภาษาอื่น
โครงสร้างพื้นฐานของ match
def get_grade(score):
match score:
case 90 <= score <= 100:
return "A"
case 80 <= score < 90:
return "B"
case _:
return "F"
grade = get_grade(85)
print(grade)
match
ทำให้จัดการหลายเงื่อนไขได้ง่ายและชัดเจนขึ้น
5. แนวทางเลือกใช้วิธีต่างๆ
– ถ้าเงื่อนไขน้อย → ใช้ if-elif-else
– ถ้าเงื่อนไขเยอะหรือเรียกฟังก์ชัน → ใช้ dict
– ถ้าใช้ Python 3.10+ และต้องการ pattern matching → ใช้ match