目次
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 ก็เพียงพอที่จะทำงานเดียวกันได้
Ad
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
Ad
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


