目次
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