© Maria Vonotna/Shutterstock.com
โดยทั่วไปแล้ว การเขียนโปรแกรมมุ่งสร้างปัญหาที่ซับซ้อนให้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ ด้วยวิธีนี้ กรณีสวิตช์จะมีประโยชน์มากสำหรับการดำเนินการโค้ดเฉพาะ โดยขึ้นอยู่กับค่าหรือตัวแปรที่เป็นปัญหา ใน Python ไม่มี switch case ดังนั้นเราต้องใช้ทางเลือกอื่น ค้นหาวิธีใช้ switch case ใน Python ได้แล้ววันนี้
Switch Case คืออะไร
พูดง่ายๆ ว่าคำสั่ง switch case ช่วยให้โปรแกรมของคุณสามารถทำงานต่างๆ ได้โดยขึ้นอยู่กับค่าของตัวแปร หรือคำสั่ง. ด้วยวิธีนี้ คำสั่ง switch case จะประเมินค่าและเปรียบเทียบผลลัพธ์กับกฎที่กำหนดไว้ล่วงหน้าที่คุณวางไว้ ในแต่ละกรณี จะต้องดำเนินการเฉพาะหากค่าตรงกับกรณีสวิตช์ คุณยังตั้งค่ารหัสเริ่มต้นที่จะดำเนินการได้หากไม่มีกรณีสวิตช์ใดที่ตรงกัน
แม้ว่า Python จะไม่มี switch case แต่ภาษาโปรแกรมอื่นๆ ก็มี ดังนั้น เราจะอธิบายวิธีการทำงานของกรณีสวิตช์ใน C:
switch (expression) { case value1: #code to execute if expression=value1 break; case value2: #code เพื่อดำเนินการหาก expression=value2 break; case value3: #code เพื่อดำเนินการหาก expression=value3 break; ค่าเริ่มต้น: #code เพื่อดำเนินการหากนิพจน์ไม่ตรงกับกรณีข้างต้น
ค่อนข้างง่ายใช่ไหม น่าเสียดายที่เราต้องทำงานเพิ่มอีกเล็กน้อยเพื่อใช้งานสิ่งนี้ใน Python มีวิธีต่างๆ สองสามวิธีในการนำฟังก์ชันที่คล้ายกับ switch case ไปใช้ ดังนั้นมาเริ่มกัน
วิธีนำ Switch case ไปใช้งานโดยใช้คำสั่ง if-elif-else
One วิธีคือการใช้คำสั่ง”if”และ”else”เพื่อทำหน้าที่เฉพาะตามอินพุต สิ่งนี้สามารถอธิบายได้สองวิธี วิธีแรกมีลักษณะดังนี้:
color=’Blue’if color==’Red’: print(‘color is Red’) elif color==’Green’: print(‘color is Green’) elif color==’Yellow’: print(‘color is Yellow’) elif color==’Blue’: print(‘color is Blue’) else: print(‘Color is undetermined’)
อินพุต หรือ”สี”จะถูกทดสอบกับแต่ละเงื่อนไขเหล่านี้เพื่อดูว่าตรงกับเงื่อนไขใด ในกรณีนี้ สีจะเป็นสีน้ำเงินอย่างชัดเจน ดังนั้นผลลัพธ์ที่คาดไว้คือ’สีคือสีน้ำเงิน’และนี่คือสิ่งที่เราเห็นเมื่อเราลองใช้โค้ดนี้
อัลกอริทึมของ switch case ที่ใช้กับคำสั่ง if-elif-else
©”TNGD”.com
วิธีนำ Switch case ไปใช้งานโดยใช้การแมปพจนานุกรม
พจนานุกรมเป็นเพียงชุดค่าข้อมูลที่ไม่มีโครงสร้างและมีคู่คีย์:ค่า ซึ่งคล้ายกับส่วนหัวในสเปรดชีต เช่น”ชื่อ””ส่วนสูง”และ”น้ำหนัก”แต่ละคีย์จะจับคู่กับค่าข้อมูล ด้วยวิธีนี้ เราสามารถใช้ฟังก์ชันตัวพิมพ์สลับประเภทเพื่อส่งคืนค่าเฉพาะจากพจนานุกรม นี่คือภาพประกอบด้านล่าง:
def switch_case(argument): switcher={“Red”:”RED”,”Blue”:”BLUE”,”Green”:”GREEN”} return switcher.get(argument,”อาร์กิวเมนต์ไม่ถูกต้อง”) if__name__==”__main__”: argument=”Green”print(switch_case(argument))
ในสถานการณ์นี้ เรากำลังกำหนดฟังก์ชัน”switch_case”เป็นฟังก์ชันที่รับอาร์กิวเมนต์
พจนานุกรมถูกกำหนดให้เป็น”ตัวสลับ”และประกอบด้วยคู่ของคีย์:ค่า คีย์แสดงชื่อสีที่เป็นตัวพิมพ์ใหญ่ ค่าแสดงชื่อสีในตัวพิมพ์ใหญ่ทั้งหมด
ค่าที่สอดคล้องกับคีย์อาร์กิวเมนต์จะถูกส่งกลับจากพจนานุกรมโดยใช้ฟังก์ชัน”get”มิฉะนั้น อาร์กิวเมนต์”invalid argument”จะถูกส่งกลับ
เนื่องจากอินพุตอาร์กิวเมนต์คือ”สีเขียว”เราจึงได้เอาต์พุตเป็น’GREEN’
“if__name==”__main__ บรรทัด ”” หมายความว่าโค้ดจะถูกเรียกใช้เมื่อรันสคริปต์โดยตรงเท่านั้น
การแมปพจนานุกรมใช้ในการปรับใช้กรณีสวิตช์
©”TNGD”.com
วิธีนำกรณีสวิตช์ไปใช้โดยใช้คลาส
วิธีสุดท้ายในการใช้ switch case ใน Python คือการใช้คลาส นี่เป็นเทมเพลตสำหรับสร้างวัตถุด้วยคุณสมบัติและวิธีการที่กำหนด ตัวอย่างเช่น คลาสที่เรียกว่า”ID”สามารถมีแอตทริบิวต์ได้ 2 คุณลักษณะ ได้แก่”ความสูง”และ”น้ำหนัก”และวิธีการรับค่าเหล่านี้ เช่น”get_height()”และ”get_weight()”ตัวอย่างเช่น เราสามารถกำหนดคลาสเป็น “switchcase” และใช้กระบวนการดังต่อไปนี้:
class switch_case: def month(self, year): default=”Incorrect month”return getattr(self,’case_’+ str (ปี), แลมบ์ดา: ค่าเริ่มต้น)() def case_1(ตัวเอง): ส่งคืน”2001″def case_2(ตัวเอง): ส่งคืน”2002″def case_3(ตัวเอง): ส่งคืน”2003″my_switch=switch_case() พิมพ์ (my_switch.month (1)) print(my_switch.month(3))
ประการแรก เรากำหนด “switch_case” เป็นฟังก์ชันที่ใช้ switch case
ตามนี้ เมธอดเรียกว่า “เดือน()” ซึ่งใช้พารามิเตอร์”ปี”และเรียกเมธอด”เดือน”โดยใช้อาร์กิวเมนต์”1″และ”3″ต่างกัน เมื่อเมธอดถูกเรียกด้วยอาร์กิวเมนต์ “1” เมธอดจะสอดคล้องกับเมธอดคลาส “case_1()” ซึ่งให้ผลลัพธ์เป็น “2001” เมื่อมีการเรียกอาร์กิวเมนต์ของ”3″ผลลัพธ์จะเป็นค่าสตริง”2003″
ดูภาพหน้าจอสำหรับวิธีการทำงานของโค้ดนี้ในทางปฏิบัติ
Switch case ใช้งานโดยใช้คลาส
©”TNGD”com
สรุป
แม้ว่า switch case จะไม่รวมอยู่ใน Python อย่างชัดเจน แต่ก็มีหลายวิธีในการสร้างกระบวนการนี้ขึ้นใหม่ โดยรวมแล้ว สิ่งเหล่านี้รวมถึงการใช้การแมปพจนานุกรม การใช้ฟังก์ชันคลาส หรือการใช้คำสั่ง if-elif-else ในทุกกรณี โค้ดเฉพาะจะถูกเรียกใช้โดยขึ้นอยู่กับอาร์กิวเมนต์ที่กำหนด และค่าเฉพาะจะถูกส่งคืนโดยขึ้นอยู่กับคำสั่ง switch
วิธีใช้ Switch Case ใน Python คำถามที่พบบ่อย (คำถามที่พบบ่อย)
ภาษาโปรแกรมใดบ้างที่รองรับคำสั่ง switch case
มีภาษาโปรแกรมจำนวนมากที่รองรับคำสั่ง switch case เช่น C, C++, Java, JavaScript, Ruby, Swift และไพธอน อย่างไรก็ตาม Python ไม่มีฟังก์ชัน switch case ที่ชัดเจน แต่สามารถใช้ฟังก์ชันนี้ได้ด้วยวิธีการต่างๆ ที่อธิบายไว้ที่นี่
คำสั่ง switch case มีประสิทธิภาพมากกว่าคำสั่ง if-else หรือไม่/p>
ไม่เสมอไป ประสิทธิภาพของคำสั่ง switch case ขึ้นอยู่กับจำนวนของ case รวมถึงวิธีนำโค้ดไปใช้ หากนิพจน์ระบุค่าที่เป็นไปได้เพียงไม่กี่ค่า คำสั่ง if-else อาจมีประสิทธิภาพมากกว่า
จะเกิดอะไรขึ้นหากไม่สามารถจับคู่ค่ากับกรณีใดๆ ได้
บล็อกโค้ดเริ่มต้นจะถูกดำเนินการหากไม่มีกรณีใดที่ตรงกับค่าที่เป็นปัญหา
คุณสามารถใช้นิพจน์ใดในคำสั่ง switch case ได้
ขึ้นอยู่กับภาษาโปรแกรมที่คุณใช้ แต่แน่นอนว่าเป็นไปได้ที่จะใช้นิพจน์ประเภทอื่นที่ไม่ใช่จำนวนเต็มหรือค่าสตริง เช่น อักขระหรือการแจงนับ
คุณสามารถใช้หลายกรณีสำหรับรหัสเดียวกันได้หรือไม่
ในกรณีส่วนใหญ่ ใช่ สิ่งนี้มีประโยชน์เมื่อคุณต้องการใช้โค้ดเดียวกันสำหรับนิพจน์หลายค่า