Python คำสั่งแบบมีเงื่อนไข: IF…Else, ELIF & Switch Case

⚡ สรุปอย่างชาญฉลาด

Python คำสั่งเงื่อนไขจะควบคุมการไหลของโปรแกรมโดยการเรียกใช้บล็อกโค้ดเฉพาะเมื่อนิพจน์บูลีนประเมินค่าเป็นจริงเท่านั้น คำสั่งเงื่อนไขได้แก่ if, else, elif, if ซ้อนกัน, ตัวดำเนินการแบบสามทาง และการจับคู่รูปแบบโครงสร้างสำหรับตรรกะที่ชัดเจนและขับเคลื่อนด้วยการตัดสินใจ

  • แนวคิดหลัก: คำสั่ง if จะทำงานเฉพาะส่วนที่เว้นวรรคไว้เมื่อเงื่อนไขเป็นจริงเท่านั้น ซึ่งเป็นพื้นฐานของการตัดสินใจ Python.
  • ทางเลือกในการจัดการ: เพิ่ม else สำหรับเส้นทางสำรอง และ elif เพื่อทดสอบเงื่อนไขเพิ่มเติมตามลำดับโดยไม่ต้องซ้อนกันหลายชั้น
  • หลีกเลี่ยงข้อผิดพลาดทางตรรกะ: ควรใช้คำสั่ง if-elif-else ชุดเดียวแทนการใช้คำสั่ง if แยกกันหลายคำสั่ง เมื่อต้องการผลลัพธ์เพียงอย่างเดียวเท่านั้น
  • เขียนให้กระชับ Code: ใช้สูตร ternary expression value_if_true ถ้าเงื่อนไขเป็นจริง else value_if_false เพื่อกำหนดค่าในบรรทัดเดียวที่อ่านง่าย
  • การแตกสาขาแบบสมัยใหม่: แทนที่เงื่อนไข elif ที่ยาวเกินไปด้วยแผนผังพจนานุกรมping หรือคำสั่ง match-case ที่นำเสนอใน Python 3.10 สำหรับการเลือกหลายวิธีที่สะอาดกว่า

Python งบเงื่อนไข

Conditional Statements คืออะไร Python?

งบเงื่อนไขใน Python ทำการคำนวณหรือการกระทำที่แตกต่างกันไป ขึ้นอยู่กับว่าเงื่อนไขบูลีนเฉพาะนั้นประเมินค่าเป็นจริงหรือเท็จ สิ่งเหล่านี้ช่วยให้โปรแกรมสามารถตัดสินใจและเลือกเส้นทางที่แตกต่างกันได้ แทนที่จะรันแต่ละบรรทัดตามลำดับ Pythonคำสั่งเงื่อนไขจะได้รับการจัดการโดย if คำสั่งและส่วนประกอบที่เกี่ยวข้อง ได้แก่ else, elif และ if ซ้อนกัน

ความหมายของ Python หากงบ?

การขอ Python ถ้าคำสั่ง ใช้สำหรับดำเนินการตัดสินใจ ประกอบด้วยชุดโค้ดที่จะทำงานก็ต่อเมื่อเงื่อนไขที่ระบุในคำสั่ง if เป็นจริงเท่านั้น หากเงื่อนไขเป็นเท็จ คำสั่ง else ที่เป็นตัวเลือกจะทำงานแทน โดยจะเก็บโค้ดสำหรับเงื่อนไข else ไว้ เมื่อคุณต้องการดำเนินการตามเงื่อนไขหนึ่งในขณะที่อีกเงื่อนไขหนึ่งไม่เป็นจริง คุณจะใช้คำสั่งนี้ Python คำสั่ง if-else

Python ถ้าไวยากรณ์คำสั่ง:

if expression:
    statement
else:
    statement

Python ถ้า...อย่างอื่น ผังงาน

Python ผังงาน if…else ที่แสดงสาขาจริงและสาขาเท็จ

ผังงานด้านบนแสดงให้เห็นว่าการควบคุมไหลผ่านคำสั่ง if-else อย่างไร มาดูตัวอย่างกัน Python ตัวอย่างการใช้งานคำสั่ง if-else:

Python ตัวอย่างผลลัพธ์ของคำสั่ง if ในโปรแกรมแก้ไขข้อความ

# Example file for working with conditional statements
def main():
    x, y = 2, 8
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 3 แนว: เรากำหนดตัวแปรสองตัวคือ x, y = 2, 8
  • Code 4 แนว: คำสั่ง if ตรวจสอบเงื่อนไข x < y ซึ่งก็คือ จริง ในกรณีนี้.
  • Code 5 แนว: ตัวแปร st ถูกตั้งค่าเป็น “x น้อยกว่า y”
  • Code 6 แนว: บรรทัด print(st) จะแสดงค่าของ st ซึ่งก็คือ “x น้อยกว่า y”

จะเกิดอะไรขึ้นเมื่อเงื่อนไข "ถ้า" ไม่เป็นไปตามที่กำหนด

จากตัวอย่างก่อนหน้านี้ ลองมาดูกันว่าเกิดอะไรขึ้นเมื่อเงื่อนไข if ใน Python ไม่ตรงตามเงื่อนไข เมื่อเงื่อนไขเป็นเท็จและไม่มีสาขาอื่นอยู่ โค้ดส่วนที่เยื้องเข้าไปจะถูกข้ามไปทั้งหมด

Python เกิดข้อผิดพลาดเมื่อเงื่อนไข if ไม่เป็นไปตามที่กำหนด

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 3 แนว: เรากำหนดตัวแปรสองตัวคือ x, y = 8, 4
  • Code 4 แนว: คำสั่ง if ตรวจสอบเงื่อนไข x < y ซึ่งก็คือ เท็จ ในกรณีนี้.
  • Code 5 แนว: ตัวแปร st คือ ไม่ ตั้งค่าเป็น "x น้อยกว่า y"
  • Code 6 แนว: บรรทัด print(st) พยายามพิมพ์ตัวแปรที่ไม่ได้ประกาศไว้ ดังนั้น Python ยก ชื่อผิดพลาด.
⚠ คำเตือน: การอ้างอิงตัวแปรที่กำหนดค่าเฉพาะภายในบล็อก if เป็นข้อผิดพลาดที่พบบ่อยในหมู่ผู้เริ่มต้น ควรเพิ่มส่วน else หรือกำหนดค่าเริ่มต้นให้กับตัวแปรก่อนคำสั่ง if

วิธีการใช้เงื่อนไข “else”

เพื่อหลีกเลี่ยงข้อผิดพลาดข้างต้น คุณสามารถเพิ่มเงื่อนไข else ได้ เงื่อนไข else ใช้เมื่อคุณต้องตัดสินประโยคหนึ่งโดยอาศัยอีกประโยคหนึ่ง หากเงื่อนไขหนึ่งเป็นเท็จ บล็อก else จะให้เส้นทางทางเลือกเพื่อให้โปรแกรมยังคงแสดงผลลัพธ์ได้

ตัวอย่าง:

Python ตัวอย่างเงื่อนไข if-else

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 3 แนว: เรากำหนดตัวแปรสองตัวคือ x, y = 8, 4
  • Code 4 แนว: คำสั่ง if ตรวจสอบเงื่อนไข x < y ซึ่งก็คือ เท็จ ในกรณีนี้.
  • Code 6 แนว: การควบคุมการทำงานของโปรแกรมจะไปยังเงื่อนไข else
  • Code 7 แนว: ตัวแปร st ถูกตั้งค่าเป็น “x คือ” มากขึ้น กว่าคุณ”
  • Code 8 แนว: บรรทัด print(st) จะแสดงค่าของ st ซึ่งก็คือ “x มากกว่า y”

เมื่อเงื่อนไข “else” ไม่ทำงาน

เงื่อนไข else อาจไม่ได้ให้ผลลัพธ์ที่ต้องการเสมอไป อาจแสดงผลลัพธ์ที่ไม่ถูกต้องหากมีข้อผิดพลาดในตรรกะของโปรแกรม ซึ่งมักเกิดขึ้นเมื่อคุณต้องพิสูจน์ความถูกต้องของคำสั่งหรือเงื่อนไขมากกว่าสองข้อในโปรแกรม ตัวอย่างจะช่วยให้คุณเข้าใจแนวคิดนี้ได้ดีขึ้น

ในที่นี้ตัวแปรทั้งสองเหมือนกัน (8, 8) แต่ผลลัพธ์ของโปรแกรมกลับเป็น “x มากกว่า y” ซึ่งเป็น ผิดข้อผิดพลาดนี้เกิดขึ้นเนื่องจากโปรแกรมตรวจสอบเงื่อนไขแรก (เงื่อนไข if) และเมื่อเงื่อนไขนั้นล้มเหลว โปรแกรมจะพิมพ์เงื่อนไขที่สอง (เงื่อนไข else) เป็นค่าเริ่มต้น ในขั้นตอนต่อไป เราจะมาดูวิธีการแก้ไขข้อผิดพลาดนี้กัน

Python เงื่อนไขอื่นที่ให้ผลลัพธ์ที่ไม่ถูกต้อง

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()

วิธีการใช้เงื่อนไข “elif”

เพื่อแก้ไขข้อผิดพลาดก่อนหน้านี้ที่เกิดจากเงื่อนไข else เราสามารถใช้ elif คำสั่ง elif นั้นบอกให้โปรแกรมตรวจสอบความเป็นไปได้ที่สามเมื่อเงื่อนไขแรกเป็นเท็จ คุณสามารถใช้เงื่อนไข elif หลายๆ เงื่อนไขต่อกันเพื่อตรวจสอบความเป็นไปได้ที่สี่ ห้า และความเป็นไปได้อื่นๆ ในโค้ดของคุณได้

ตัวอย่าง:

Python ตัวอย่างเงื่อนไข elif

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    elif(x == y):
        st = "x is same as y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 3 แนว: เรากำหนดตัวแปรสองตัวคือ x, y = 8, 8
  • Code 4 แนว: คำสั่ง if ตรวจสอบเงื่อนไข x < y ซึ่งก็คือ เท็จ ในกรณีนี้.
  • Code 6 แนว: การควบคุมการทำงานของโปรแกรมจะไปยังเงื่อนไข elif ซึ่งจะตรวจสอบว่า x == y หรือไม่ ซึ่งในกรณีนี้เป็นจริง
  • Code 7 แนว: ตัวแปร st ถูกตั้งค่าเป็น “x คือ” เช่นเดียวกับที่ จ”
  • Code 10 แนว: โปรแกรมจะออกจากคำสั่ง if (จะไม่ไปถึงคำสั่ง else) และพิมพ์ st ออกมา ผลลัพธ์ที่ได้คือ “x เหมือนกับ y” ซึ่งถูกต้อง

วิธีเรียกใช้คำสั่งเงื่อนไขโดยใช้โค้ดให้น้อยที่สุด Code

ตอนนี้คุณสามารถเขียนบล็อก if-elif-else แบบเต็มรูปแบบได้แล้ว Python ช่วยให้คุณย่อเงื่อนไขง่ายๆ ให้เหลือเพียงบรรทัดเดียว แทนที่จะเขียนโค้ดแยกกันสำหรับแต่ละสาขา คุณสามารถใช้ นิพจน์ไตรภาค (แบบมีเงื่อนไข).

ไวยากรณ์:

value_if_true if condition else value_if_false

ตัวอย่าง:

Python ตัวอย่างคำสั่งเงื่อนไขแบบสามตัวแปรในบรรทัดเดียว

def main():
    x, y = 10, 8
    st = "x is less than y" if (x < y) else "x is greater than or equal to y"
    print(st)

if __name__ == "__main__":
    main()
  • Code 2 แนว: เรากำหนดตัวแปรสองตัวคือ x, y = 10, 8
  • Code 3 แนว: ตัวแปร st จะมีค่าเป็น “x น้อยกว่า y” ถ้า x < y มิฉะนั้นจะมีค่าเป็น “x มากกว่าหรือเท่ากับ y” เนื่องจากในที่นี้ x > y ดังนั้น st จึงกลายเป็นค่าที่สอง
  • Code 4 แนว: พิมพ์ค่าของ st และให้ผลลัพธ์ที่ถูกต้อง

Python ซ้อนคำสั่ง if

คำสั่ง if ซ้อนกัน คือการวางคำสั่ง if หนึ่งไว้ภายในอีกคำสั่ง if หนึ่ง ซึ่งมีประโยชน์เมื่อการตัดสินใจขึ้นอยู่กับเงื่อนไขที่สอง ตัวอย่างต่อไปนี้แสดงคำสั่ง if ซ้อนกันใน Python ที่คำนวณเรือping ค่าใช้จ่ายขึ้นอยู่กับประเทศและยอดรวมของคำสั่งซื้อ

total = 100
# country = "US"
country = "AU"

if country == "US":
    if total <= 50:
        print("Shipping Cost is $50")
    elif total <= 100:
        print("Shipping Cost is $25")
    elif total <= 150:
        print("Shipping Cost is $5")
    else:
        print("FREE")

if country == "AU":
    if total <= 50:
        print("Shipping Cost is $100")
    else:
        print("FREE")

ลบเครื่องหมายคอมเมนต์ออกจากบรรทัดที่ 2 ในโค้ดด้านบน และใส่เครื่องหมายคอมเมนต์ไว้ที่บรรทัดที่ 3 จากนั้นรันโค้ดอีกครั้งเพื่อดูว่าผลลัพธ์เปลี่ยนแปลงไปอย่างไรสำหรับประเทศอื่น

สลับคำชี้แจงกรณีและปัญหาเข้า Python

คำสั่ง Switch คืออะไร?

คำสั่ง switch เป็นคำสั่งแยกสาขาแบบหลายทางที่เปรียบเทียบค่าของตัวแปรกับค่าที่ระบุไว้ในคำสั่ง case เป็นเวลานานแล้วที่... Python ภาษาดังกล่าวไม่มีคำสั่ง switch ดังนั้นนักพัฒนาจึงใช้วิธีการอื่นเพื่อสร้างพฤติกรรมเดียวกัน Python พจนานุกรม แผนที่ping.

ตัวอย่างการใช้แผนที่พจนานุกรมping:

def switch_example(argument):
    switcher = {
        0: "This is Case Zero",
        1: "This is Case One",
        2: "This is Case Two",
    }
    return switcher.get(argument, "nothing")

if __name__ == "__main__":
    argument = 1
    print(switch_example(argument))

สวิตช์เคสที่มีการจับคู่ (Python 3.10 และ Later)

ตั้งแต่ Python 3.10 (วางจำหน่ายในเดือนตุลาคม 2021) Python ให้คุณสมบัติพื้นฐาน กรณีไม้ขีดไฟ คำสั่งนี้เรียกว่า การจับคู่รูปแบบเชิงโครงสร้าง (structural pattern matching) ซึ่งเป็นทางเลือกที่สะอาดตาและอ่านง่ายกว่าการใช้คำสั่ง elif ที่ยาวเหยียด และวิธีการใช้พจนานุกรมดังที่แสดงไว้ข้างต้น

def switch_example(argument):
    match argument:
        case 0:
            return "This is Case Zero"
        case 1:
            return "This is Case One"
        case 2:
            return "This is Case Two"
        case _:
            return "nothing"

if __name__ == "__main__":
    print(switch_example(1))

เครื่องหมายขีดล่าง (_) ทำหน้าที่เป็นกรณีเริ่มต้น โดยจะตรงกับค่าใดๆ ก็ตามที่ไม่ได้รับการจัดการโดยกรณีต่างๆ ก่อนหน้านี้ เช่นเดียวกับค่าเริ่มต้นในคำสั่ง switch แบบดั้งเดิม

✅ เคล็ดลับ: ใช้ match-case หากคุณกำลังใช้งานอยู่ Python เวอร์ชัน 3.10 หรือใหม่กว่า สำหรับเวอร์ชันเก่ากว่า ให้ใช้แผนผังพจนานุกรมping ยังคงเป็นวิธีการมาตรฐานในการจำลองคำสั่ง switch

เปรียบเทียบอย่างรวดเร็วระหว่าง if, elif และ else:

ใช้การเปรียบเทียบนี้เพื่อตัดสินใจว่าโครงสร้างเงื่อนไขแบบใดเหมาะสมกับตรรกะการตัดสินใจของคุณ

คำแถลงจุดมุ่งหมายควรใช้เมื่อใด
ifเรียกใช้บล็อกเมื่อเงื่อนไขเป็นจริงการตัดสินใจเพียงครั้งเดียวว่าใช่หรือไม่ใช่
ถ้า…มิฉะนั้นจัดเตรียมวิธีการสำรองเมื่อเงื่อนไขเป็นเท็จผลลัพธ์สองอย่างที่ไม่สามารถเกิดขึ้นพร้อมกันได้
elifทดสอบเงื่อนไขเพิ่มเติมตามลำดับความเป็นไปได้สามอย่างขึ้นไป
ซ้อนกันถ้าวางเงื่อนไข if ไว้ภายในเงื่อนไข if อีกเงื่อนไขหนึ่งการตัดสินใจที่ขึ้นอยู่กับเงื่อนไขที่สอง
สามชั้นลดความซับซ้อนของคำสั่ง if-else ให้เหลือเพียงบรรทัดเดียวการกำหนดค่าอย่างง่าย
กรณีไม้ขีดไฟจับคู่ค่ากับรูปแบบจำนวนมากการแตกแขนงหลายทาง (Python 3.10 +)
⚠ หมายเหตุ: Python 2 รายสิ้นสุดอายุการใช้งานเมื่อวันที่ 1 มกราคม 2020 และตัวอย่างทั้งหมดในบทความนี้ใช้ Python ไวยากรณ์ 3 แบบ ใน Python 2. คำสั่ง print เป็นคำสั่ง (เช่น print st) ไม่ใช่ฟังก์ชัน ดังนั้นโค้ดข้างต้นจะไม่ทำงานโดยไม่เปลี่ยนแปลงบน Python 2.

คำถามที่พบบ่อย

คำสั่ง if เริ่มต้นการตัดสินใจและจะถูกประเมินผลเสมอ ในขณะที่คำสั่ง elif (else-if) จะถูกตรวจสอบก็ต่อเมื่อเงื่อนไข if หรือ elif ก่อนหน้าเป็นเท็จเท่านั้น ทำให้คุณสามารถทดสอบความเป็นไปได้หลายอย่างในลำดับเดียวโดยที่ทำงานเพียงบล็อกเดียวเท่านั้น

ใช่. ตั้งแต่ Python ในเวอร์ชัน 3.10 คำสั่ง match-case ให้การแยกสาขาแบบ switch-style โดยใช้การจับคู่รูปแบบโครงสร้าง ในเวอร์ชันเก่ากว่า นักพัฒนาจะจำลองการทำงานของ switch โดยใช้ dictionary mapping โดยใช้เมธอด get() เพื่อกำหนดค่าเริ่มต้น

ใช้การแสดงออกเชิงไตรภาค: ค่า_ถ้าเป็นจริงถ้าเงื่อนไขเป็นจริง มิฉะนั้นค่า_ถ้าเป็นเท็จ ตัวอย่างเช่น st = “low” ถ้า x < 10 มิฉะนั้น “high” จะกำหนดค่าในบรรทัดเดียวที่อ่านง่าย โดยไม่ต้องใช้บล็อก if-else เต็มรูปแบบ

ใช่แล้ว ผู้ช่วยเขียนโค้ด AI สามารถสร้าง อธิบาย และแก้ไขข้อผิดพลาดของตรรกะ if-elif-else จากข้อความภาษาธรรมดาได้ มันมีประโยชน์สำหรับการเรียนรู้ แต่คุณควรตรวจสอบผลลัพธ์อีกครั้งเพื่อยืนยันว่าเงื่อนไขและการเว้นวรรคตรงกับตรรกะที่คุณต้องการ

ใช่แล้ว ตรรกะแบบมีเงื่อนไขเป็นพื้นฐานสำคัญของ AI ต้นไม้ตัดสินใจ ระบบที่ใช้กฎ และไปป์ไลน์การประมวลผลข้อมูล ล้วนอาศัยการแยกเงื่อนไขแบบ if-else เพื่อเลือกการกระทำ กรองข้อมูล และควบคุมวิธีการที่โมเดลจัดการกับอินพุตต่างๆ

สรุปโพสต์นี้ด้วย: