การควบคุมการไหลในภาษาไพธอน
บทความนี้อธิบายการควบคุมการไหลในภาษาไพธอน
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 ด้วย