การควบคุมการไหลในภาษาไพธอน

การควบคุมการไหลในภาษาไพธอน

บทความนี้อธิบายการควบคุมการไหลในภาษาไพธอน

YouTube Video

คำสั่ง If ในภาษาไพธอน

คำสั่ง if ในภาษาไพธอนเป็นไวยากรณ์สำหรับการสร้างเงื่อนไข มันใช้สำหรับการรันบล็อกโค้ดเมื่อเงื่อนไขเฉพาะประเมินค่าได้เป็น True (จริง)

ไวยกรณ์พื้นฐาน

คำสั่ง if ในภาษาไพธอนจะตามโครงสร้างพื้นฐานด้านล่างนี้

1x = 10
2
3if x > 5: # Check if the condition(x > 5) is True
4    # If the condition is True, execute this code block
5    print("x is greater than 5")

ในตัวอย่างนี้, "x is greater than 5" จะถูกพิมพ์ออกมาหากตัวแปร x มีค่ามากกว่า 5

คำสั่ง else

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

1x = 3
2
3if x > 5:
4    print("x is greater than 5")
5else:
6    print("x is less than or equal to 5")

ในตัวอย่างนี้, ผลลัพธ์จะเป็น "x is less than or equal to 5"

คำสั่ง elif

หากคุณต้องการตรวจสอบหลายเงื่อนไข, คุณสามารถใช้ elif ซึ่งย่อมาจาก "else if"

1x = 5
2
3if x > 5:
4    print("x is greater than 5")
5elif x == 5:
6    print("x is equal to 5")
7else:
8    print("x is less than 5")

ในตัวอย่างนี้, "x is equal to 5" จะถูกพิมพ์ออกมา

หมายเหตุ

  • จำเป็นต้องใส่โคลอน (:) หลังคำสั่ง if, elif, หรือ else
  • บล็อกโค้ดที่ถูกรันเมื่อเงื่อนไขเป็นจริงต้องมีการเยื้อง (indent) ในภาษา Python การย่อหน้ามาตรฐานมักจะเป็น 4 ช่องว่าง แต่จำนวนช่องว่างอื่น ๆ ก็ใช้ได้หากคุณรักษาความสม่ำเสมอ
  • คุณสามารถใช้การแสดงออกใดๆ ที่ประเมินค่าเป็นค่า boolean เป็นเงื่อนไข ซึ่งหมายความว่าคุณสามารถใช้การแสดงออกแบบเงื่อนไขร่วมกับตัวดำเนินการเปรียบเทียบหรือเชิงตรรกะ

การเชี่ยวชาญการใช้คำสั่ง if ในภาษาไพธอนช่วยให้คุณควบคุมการทำงานของโปรแกรมได้อย่างยืดหยุ่น

การแยกทางเงื่อนไขหลายรายการในภาษาไพธอน

มีหลายวิธีในการสร้างฟังก์ชันที่เหมือนกับ switch ในภาษา Python ซึ่งคล้ายกับในภาษาอื่นๆ ในภาษาไพธอน, มักใช้คำสั่ง if-elif-else หรือ dictionary เพื่อสร้างโครงสร้างคล้ายคำสั่ง switch

วิธีที่ 1: คำสั่ง if-elif-else

วิธีที่ง่ายที่สุดคือการใช้คำสั่ง if-elif-else สำหรับการแยกเงื่อนไข

 1def switch_example(value):
 2    if value == 1:
 3        return "Value is one"
 4    elif value == 2:
 5        return "Value is two"
 6    elif value == 3:
 7        return "Value is three"
 8    else:
 9        return "Unknown value"
10
11print(switch_example(1))  # Output: Value is one
12print(switch_example(4))  # Output: Unknown value

วิธีที่ 2: การใช้พจนานุกรม (Dictionaries)

โดยการแมปฟังก์ชันหรือค่าไปยังพจนานุกรม คุณสามารถสร้างโครงสร้างที่คล้ายกับคำสั่ง switch วิธีนี้สะดวกเมื่อคุณต้องการดำเนินการที่แตกต่างกันสำหรับค่าที่เฉพาะเจาะจง

 1def case_one():
 2    return "Value is one"
 3
 4def case_two():
 5    return "Value is two"
 6
 7def case_default():
 8    return "Unknown value"
 9
10def switch_example(value):
11    switch_dict = {
12        1: case_one,
13        2: case_two
14    }
15
16    # Use get() method to retrieve the corresponding function from the dictionary
17    # If the value is not found in the dictionary, use case_default as a fallback
18    return switch_dict.get(value, case_default)()
19
20print(switch_example(1))  # Output: Value is one
21print(switch_example(3))  # Output: Unknown value

วิธีที่ 3: คำสั่ง match (Python 3.10 ขึ้นไป)

คำสั่ง match ถูกนำเสนอใน Python 3.10 นี่คือไวยากรณ์การจับคู่รูปแบบ (pattern matching) ที่ให้ฟังก์ชันคล้ายกับคำสั่ง switch

 1def switch_example(value):
 2    match value:
 3        case 1:
 4            return "Value is one"
 5        case 2:
 6            return "Value is two"
 7        case 3:
 8            return "Value is three"
 9        case _:
10            return "Unknown value"
11
12print(switch_example(1))  # Output: Value is one
13print(switch_example(4))  # Output: Unknown value

สรุป

  • คำสั่ง if-elif-else: เรียบง่ายและปรับใช้ได้หลากหลายกรณี
  • พจนานุกรม: ใช้การแมปฟังก์ชันหรือค่าเพื่อให้การแยกเงื่อนไขมีประสิทธิภาพ
  • คำสั่ง match: ช่วยให้การแยกเงื่อนไขเป็นธรรมชาติมากขึ้นใน Python 3.10 ขึ้นไป ใกล้เคียงกับคำสั่ง switch มากที่สุด

การวนซ้ำ (For Loops) ใน Python

คำสั่ง for ของ Python ใช้สำหรับวนซ้ำแต่ละองค์ประกอบในวัตถุที่สามารถวนซ้ำได้ เช่น รายการ (list), สตริง (string) หรือ ดิกชันนารี (dictionary) ไวยากรณ์พื้นฐานของคำสั่ง for คือดังนี้:

1# Loop through each item in the iterable
2for variable in iterable:
3    # Execute this block of code for each item in the iterable
4    code_to_execute

ตัวอย่างเฉพาะดังต่อไปนี้:

ตัวอย่างการใช้รายการ (List)

1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3    print(fruit)

โค้ดนี้เรียกฟังก์ชัน print สำหรับแต่ละองค์ประกอบในรายการ fruits และแสดงชื่อของผลไม้แต่ละชนิด

ตัวอย่างการใช้ฟังก์ชัน range()

ฟังก์ชัน range() สร้างจำนวนเต็มภายในช่วงค่าที่กำหนด ซึ่งมีประโยชน์สำหรับการวนซ้ำเชิงตัวเลข

1for i in range(5):
2    print(i)

range(5) สร้างจำนวนเต็มตั้งแต่ 0 ถึง 4 ในกรณีนี้ 0, 1, 2, 3, 4 จะถูกแสดงผลตามลำดับ

ตัวอย่างการใช้พจนานุกรม (Dictionary)

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

1person = {"name": "Alice", "age": 25}
2for key in person:
3    print(key, person[key])

อีกทางเลือกหนึ่งคือใช้เมธอด items() เพื่อดึงทั้งคีย์และค่าออกมาพร้อมกัน

1person = {"name": "Alice", "age": 25}
2for key, value in person.items():
3    print(key, value)

for Loop ที่ซ้อนกัน

สามารถซ้อน for loops เพื่อทำการวนซ้ำที่ซับซ้อนได้

1matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2for row in matrix:
3    for num in row:
4        print(num)

โค้ดนี้จะวนผ่านแต่ละแถวของลิสต์ matrix และแสดงตัวเลขในแต่ละแถวตามลำดับ

continue เพื่อข้ามการวนซ้ำ และ break เพื่อหยุดลูป

การใช้ continue ภายใน for loop จะข้ามการวนซ้ำปัจจุบันและไปยังการวนซ้ำถัดไป นอกจากนี้ การใช้ break จะหยุดลูปโดยสมบูรณ์

1for i in range(10):
2    if i == 5:
3        continue
4    if i == 8:
5        break
6    print(i)

ในตัวอย่างนี้ ลูปจะข้ามเมื่อ i เท่ากับ 5 และหยุดเมื่อ i เท่ากับ 8 ดังนั้น ผลลัพธ์ที่ได้จะเป็น 0, 1, 2, 3, 4, 6, 7

for loop ของ Python มีความยืดหยุ่นสูงและสามารถนำไปใช้ในสถานการณ์ต่าง ๆ ได้หลากหลาย ขึ้นอยู่กับประเภทของการประมวลผลซ้ำที่คุณต้องการทำ สามารถใช้งานร่วมกับ lists, dictionaries, strings และ range() ได้

while Loop ใน Python

ใน Python while loop เป็นโครงสร้างควบคุมที่ใช้สำหรับการรันโค้ดในบล็อกซ้ำ ๆ ตราบใดที่เงื่อนไขยังคงเป็น True ไวยากรณ์พื้นฐานของ while loop มีดังนี้:

1while condition:
2    # This block of code will be executed repeatedly as long as the condition is true
3    statement1
4    statement2
5    ...

ตัวอย่าง:

ในตัวอย่างต่อไปนี้ มีการใช้ while loop เพื่อแสดงตัวเลขจาก 1 ถึง 5

1i = 1
2while i <= 5:
3    print(i)
4    i += 1

โค้ดนี้ทำงานดังนี้

  • เริ่มต้นด้วย i เท่ากับ 1, แสดงผล i ขณะที่มีค่าน้อยกว่าหรือเท่ากับ 5 และเพิ่มค่า i ทีละ 1 ทุกครั้ง

หมายเหตุ:

คุณควรคำนึงถึงประเด็นต่อไปนี้เมื่อใช้คำสั่ง while

  1. ระวังลูปที่ไม่มีที่สิ้นสุด

    • หากเงื่อนไขในลูป while เป็นจริงตลอดเวลาจะทำให้เกิดลูปไม่มีที่สิ้นสุด ต้องดำเนินการที่เหมาะสมเพื่อเปลี่ยนเงื่อนไข มิฉะนั้นโปรแกรมจะไม่หยุดรัน
  2. การใช้ break และ continue:

    • ใช้ break เมื่อต้องการออกจากลูปก่อนกำหนด
    • continue จะข้ามรอบปัจจุบันและเริ่มรอบถัดไป ระวัง เงื่อนไขของลูปที่ไม่ถูกต้องอาจทำให้เกิดลูปที่ไม่มีที่สิ้นสุดได้

ตัวอย่างของ break:

1i = 1
2while i <= 5:
3    if i == 3:
4        break  # Exit the loop when i becomes 3
5    print(i)
6    i += 1
  • ในกรณีนี้ หลังจาก 1 และ 2 ถูกแสดงผล ลูปจะสิ้นสุดเมื่อ i มีค่าเท่ากับ 3

ตัวอย่างของ continue:

1i = 0
2while i < 5:
3    i += 1
4    if i == 3:
5        # Skip the print statement and move to the next loop iteration when i is 3
6        continue
7    print(i)
  • ในกรณีนี้ จะข้ามการแสดงผลเฉพาะ 3 ซึ่งส่งผลให้แสดงผลเป็น 1, 2, 4, 5
  • ด้วยการเพิ่มค่า i ตั้งแต่ต้นรอบลูป ตัวนับจะยังคงเดินหน้าต่อไป แม้จะมีการใช้ continue ซึ่งจะช่วยป้องกันไม่ให้เกิดลูปที่ไม่มีที่สิ้นสุด

คุณสามารถติดตามบทความข้างต้นโดยใช้ Visual Studio Code บนช่อง YouTube ของเรา กรุณาตรวจสอบช่อง YouTube ด้วย

YouTube Video