การควบคุมการไหลในภาษาไพธอน
บทความนี้อธิบายการควบคุมการไหลในภาษาไพธอน
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
-
ระวังลูปที่ไม่มีที่สิ้นสุด
- หากเงื่อนไขในลูป
whileเป็นจริงตลอดเวลาจะทำให้เกิดลูปไม่มีที่สิ้นสุด ต้องดำเนินการที่เหมาะสมเพื่อเปลี่ยนเงื่อนไข มิฉะนั้นโปรแกรมจะไม่หยุดรัน
- หากเงื่อนไขในลูป
-
การใช้
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 ด้วย