Python ลูป For และ While (พร้อมตัวอย่าง)

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

Python ลูปจะทำซ้ำบล็อกโค้ดจนกว่าเงื่อนไขที่กำหนดไว้จะเป็นจริง ลูป for และลูป while รวมถึงคำสั่ง break, continue และ enumerate จะควบคุมจำนวนครั้งที่ลูปทำงาน ดังตัวอย่างด้านล่าง

  • 🔁 ลูป: ลูปจะเรียกใช้บล็อกโค้ดซ้ำ ๆ จนกว่าเงื่อนไขที่กำหนดไว้จะหยุดการทำงาน
  • 🔢 สำหรับลูป: ลูป for จะวนซ้ำไปตามลำดับ เช่น ช่วงข้อมูล รายการ หรือสตริง
  • ♻️ ในขณะที่วนซ้ำ: ลูป while จะทำงานซ้ำไปเรื่อยๆ ตราบใดที่เงื่อนไขของลูปยังคงเป็นจริง
  • หยุดพัก: คำสั่ง break จะออกจากลูปทันที ณ จุดที่เลือกไว้
  • ⏭️ ดำเนินการต่อ: คำสั่ง continue จะข้ามการวนซ้ำปัจจุบันและไปยังการวนซ้ำถัดไป
  • 🔖 ระบุ: ฟังก์ชัน enumerate() จะจับคู่แต่ละรายการกับดัชนี ในขณะที่ looping.

Python ลูป for และ while

ลูปคืออะไร?

ลูปสามารถดำเนินการบล็อกของรหัสจำนวนครั้งจนกว่าจะตรงตามเงื่อนไขที่กำหนด การใช้งานค่อนข้างธรรมดาในการเขียนโปรแกรม ต่างจากภาษาโปรแกรมอื่นๆ ที่มี For Loop, while loop, do While ฯลฯ

For Loop คืออะไร?

For loop ใช้เพื่อวนซ้ำองค์ประกอบของลำดับ มักใช้เมื่อคุณมีโค้ดที่ต้องการทำซ้ำจำนวน "n"

While Loop คืออะไร?

ในขณะที่ Loop ใช้เพื่อทำซ้ำบล็อกของโค้ด แทนที่จะเรียกใช้บล็อกโค้ดเพียงครั้งเดียว ระบบจะเรียกใช้บล็อกโค้ดหลายครั้งจนกว่าจะตรงตามเงื่อนไขที่กำหนด

วิธีการใช้งาน “While Loop”

แม้ว่า loop จะทำสิ่งเดียวกันกับที่คำสั่ง "if" ทำทุกประการ แต่แทนที่จะเรียกใช้บล็อกโค้ดเพียงครั้งเดียว พวกเขาจะกระโดดกลับไปยังจุดที่เริ่มโค้ดและทำซ้ำขั้นตอนทั้งหมดอีกครั้ง

วากยสัมพันธ์

while expression
 Statement

ตัวอย่าง:

#
#Example file for working with loops
#
x=0
#define a while loop
while(x <4):
		print(x)
		x = x+1

ผลลัพธ์ที่คาดหวัง:

0
1
2
3
  • Code บรรทัดที่ 4: กำหนดค่าตัวแปร x เป็น 0
  • Code บรรทัดที่ 7: ลูป while ตรวจสอบเงื่อนไข x<4 ค่าปัจจุบันของ x คือ 0 เงื่อนไขเป็นจริง การควบคุมการทำงานจึงเข้าสู่ลูป while
  • Code บรรทัดที่ 8: พิมพ์ค่าของ x
  • Code บรรทัดที่ 9: ค่า x เพิ่มขึ้น 1 การควบคุมการทำงานกลับไปที่บรรทัดที่ 7 ตอนนี้ค่าของ x คือ 1 ซึ่งน้อยกว่า 4 เงื่อนไขเป็นจริง และลูป while จะทำงานอีกครั้ง กระบวนการนี้ดำเนินต่อไปจนกว่า x จะกลายเป็น 4 และเงื่อนไขของลูป while จะเป็นเท็จ

วิธีการใช้งาน “For Loop”

In Pythonเรียกว่า "for loops" ตัววนซ้ำ

เช่นเดียวกับ while loop “For Loop” ก็ใช้เพื่อทำซ้ำโปรแกรมเช่นกัน

แต่ต่างจาก while loop ซึ่งขึ้นอยู่กับเงื่อนไขจริงหรือเท็จ “For Loop” ขึ้นอยู่กับองค์ประกอบที่ต้องวนซ้ำ

ตัวอย่าง:

#
#Example file for working with loops
#
x=0
#define a while loop
#	while(x <4):
#		print x
#		x = x+1

#Define a for loop 
for x in range(2,7):
		print(x)

ผลลัพธ์ที่คาดหวัง:

2
3
4
5
6

สำหรับวนซ้ำด้วยตัวเลขที่ประกาศในช่วง

ตัวอย่างเช่น

สำหรับ Loop สำหรับ x ที่อยู่ในพิสัย (2,7)

เมื่อรันโค้ดนี้ มันจะพิมพ์ตัวเลขระหว่าง 2 ถึง 7 (2,3,4,5,6) ในรหัสนี้ หมายเลข 7 จะไม่ถือว่าอยู่ในช่วง

For Loops ยังใช้กับชุดของสิ่งอื่นๆ ได้ด้วย ไม่ใช่แค่ตัวเลข เราจะเห็นความบางในหัวข้อถัดไป

วิธีใช้ For Loop สำหรับ String

ในขั้นตอนนี้ เราจะดูว่า "for loop" สามารถนำไปใช้กับสิ่งอื่นๆ นอกเหนือจากตัวเลขได้อย่างไร

ตัวอย่าง:

#use a for loop over a collection
Months = ["Jan","Feb","Mar","April","May","June"]
for m in Months:
		print(m)

ผลลัพธ์ที่คาดหวัง:

Jan
Feb
Mar
April
May
June

Code บรรทัดที่ 3: เราเก็บเดือนต่างๆ (“มกราคม กุมภาพันธ์ มีนาคม เมษายน พฤษภาคม มิถุนายน”) ไว้ในตัวแปร Months

Code บรรทัดที่ 4: เราวนลูป for ซ้ำไปเรื่อยๆ สำหรับแต่ละค่าในตัวแปร Months ค่าปัจจุบันของ Months จะถูกเก็บไว้ในตัวแปร m

Code บรรทัดที่ 5: พิมพ์เดือน

วิธีใช้คำสั่งแบ่งใน For Loop

เบรกพอยต์เป็นฟังก์ชันพิเศษใน For Loop ที่ช่วยให้คุณสามารถหยุดหรือยุติการทำงานของ for loop ได้

ตัวอย่าง:

#use a for loop over a collection
	#Months = ["Jan","Feb","Mar","April","May","June"]
	#for m in Months:
		#print m
		
# use the break and continue statements
for x in range (10,20):
			if (x == 15): break
			#if (x % 2 == 0) : continue
			print(x)

ผลลัพธ์ที่คาดหวัง:

10
11
12
13
14

ในตัวอย่างนี้ เราได้ประกาศตัวเลขตั้งแต่ 10-20 แต่เราต้องการให้ลูป for สิ้นสุดที่ตัวเลข 15 และหยุดการทำงานต่อไป ดังนั้นเราจึงประกาศฟังก์ชัน break โดยกำหนด (x==15): break ดังนั้นทันทีที่โค้ดเรียกตัวเลข 15 โปรแกรมก็จะหยุดทำงาน Code บรรทัดที่ 10 ประกาศตัวแปร x ระหว่างช่วง (10, 20)

  • Code บรรทัดที่ 11 ประกาศเงื่อนไขสำหรับเบรกพอยต์ที่ x==15
  • Code บรรทัดที่ 12 ตรวจสอบและทำซ้ำขั้นตอนจนกว่าจะถึงหมายเลข 15
  • Code บรรทัดที่ 13 พิมพ์ผลลัพธ์ลงในช่องแสดงผล

วิธีใช้ “คำสั่งดำเนินการต่อ” ใน For Loop

ฟังก์ชั่น Continue ดังที่ชื่อระบุ จะยุติการวนซ้ำปัจจุบันของ for loop แต่จะดำเนินการวนซ้ำที่เหลือต่อไป

ตัวอย่าง

#use a for loop over a collection
	#Months = ["Jan","Feb","Mar","April","May","June"]
	#for m in Months:
		#print m
		
# use the break and continue statements
for x in range (10,20):
			#if (x == 15): break
			if (x % 5 == 0) : continue
			print(x)

ผลลัพธ์ที่คาดหวัง:

11
12
13
14
16
17
18
19

สามารถใช้คำสั่ง Continue ใน for loop เมื่อคุณต้องการดึงค่าเฉพาะจากรายการ

ในตัวอย่างของเรา เราประกาศค่าเป็น 10-20 แต่ระหว่างตัวเลขเหล่านี้ เราต้องการเฉพาะตัวเลขที่หารด้วย 5 ลงตัว หรือพูดอีกอย่างก็คือ ตัวเลขที่ไม่ให้เป็นศูนย์เมื่อหารด้วย 5

ดังนั้น ในช่วง (10,11, 12….19,20) ของเรา จะมีเพียง 3 ตัวเลข (10,15,20) เท่านั้นที่หารด้วย 5 ลงตัว ส่วนที่เหลือหารด้วย XNUMX ลงตัว

ดังนั้นยกเว้นหมายเลข 10,15 และ 20 “for loop” จะไม่ดำเนินการต่อและพิมพ์หมายเลขเหล่านั้นเป็นเอาต์พุต

  • Code บรรทัดที่ 10 ประกาศตัวแปร x สำหรับช่วง (10, 20)
  • Code บรรทัดที่ 12 ประกาศเงื่อนไขสำหรับ x หารด้วย 5 = 0 ต่อไป
  • Code บรรทัดที่ 13 พิมพ์ผลลัพธ์

แจกแจง () ในคืออะไร Python?

แจกแจง () ในหลาม เป็นฟังก์ชันในตัวที่ใช้สำหรับกำหนดดัชนีให้กับแต่ละรายการของออบเจ็กต์ที่วนซ้ำได้ โดยจะเพิ่มลูปในออบเจ็กต์ที่วนซ้ำได้ในขณะที่ยังคงรักษาดัชนีไว้ping track ของรายการปัจจุบันและส่งคืนอ็อบเจ็กต์ในรูปแบบที่สามารถแจงนับได้ อ็อบเจ็กต์นี้สามารถใช้ในลูป for เพื่อแปลงเป็นลิสต์โดยใช้เมธอด list()

ตัวอย่าง:

ฟังก์ชันแจงนับ ใช้สำหรับกำหนดหมายเลขหรือจัดทำดัชนีสมาชิกในรายการ

สมมติว่าเราต้องการทำการนับหมายเลขสำหรับเดือน (Jan, Feb, Marc, ….June) ดังนั้น เราจึงประกาศตัวแปร i ที่ใช้ระบุตัวเลข ในขณะที่ m จะพิมพ์หมายเลขของเดือนในรายการ

#use a for loop over a collection
Months = ["Jan","Feb","Mar","April","May","June"]
for i, m in enumerate (Months):
		print(i,m)
		
# use the break and continue statements
		
		#for x in range (10,20):
		#if (x == 15): break
		#if (x % 5 == 0) : continue
		#print x

ผลลัพธ์ที่คาดหวัง:

0 Jan
1 Feb
2 Mar
3 April
4 May
5 June

เมื่อดำเนินการโค้ด ผลลัพธ์ของฟังก์ชันแจกแจงจะส่งคืนชื่อเดือนพร้อมหมายเลขดัชนี เช่น (0-ม.ค.) (1- ก.พ.) (2- มีนาคม) เป็นต้น

  • Code บรรทัดที่ 3 ระบุรายชื่อเดือน [ ม.ค., ก.พ.,…มิ.ย.]
  • Code บรรทัดที่ 4 ประกาศตัวแปร i และ m สำหรับลูป For
  • Code บรรทัดที่ 5 จะพิมพ์ผลลัพธ์และเข้าสู่ลูป For อีกครั้งสำหรับเดือนที่เหลือเพื่อทำการแจงนับ

ตัวอย่างการปฏิบัติ

มาดูอีกตัวอย่างหนึ่งสำหรับ For Loop ที่จะทำซ้ำคำสั่งเดิมซ้ำแล้วซ้ำอีก

Python ห่วง การทำงาน Code สำหรับการออกกำลังกายทุกท่า
Code สำหรับลูป while
x=0    
while (x<4):
    print (x)
    x= x+1
สำหรับตัวอย่างง่ายๆ ของลูป
x=0 
for x in range (2,7):
    print (x)
การใช้ for วนซ้ำในสตริง
Months = ["Jan","Feb","Mar","April","May","June"]
for m in (Months):
    print (m)
ใช้คำสั่งแบ่งใน for loop
for x in range (10,20):
       if (x == 15): break
       print (x)
การใช้คำสั่ง Continue ใน for loop
for x in range (10,20):
       if (x % 5 == 0): continue
       print (x)
Code สำหรับ “ฟังก์ชันแจงนับ” ด้วย “ลูป for”
Months = ["Jan","Feb","Mar","April","May","June"]
for i, m in enumerate (Months):
    print (i,m)

วิธีใช้ for loop เพื่อทำซ้ำคำสั่งเดิมซ้ำแล้วซ้ำอีก

คุณสามารถใช้ for loop เพื่อทำซ้ำคำสั่งเดิมซ้ำแล้วซ้ำอีกได้ ในตัวอย่างนี้ เราได้พิมพ์คำว่า “guru99” สามครั้ง

ตัวอย่าง: หากต้องการทำซ้ำคำสั่งเดิมจำนวนครั้ง เราได้ประกาศตัวเลขในตัวแปร i (i ใน 123) ดังนั้นเมื่อคุณรันโค้ดตามที่แสดงด้านล่าง มันจะพิมพ์คำสั่ง (guru99) ซึ่งหลายครั้งเป็นตัวเลขที่ประกาศสำหรับตัวแปรของเราใน ( i ใน 123)

for i in '123':
 print ("guru99",i,)

ผลลัพธ์ที่คาดหวัง:

guru99 1
guru99 2
guru99 3

เช่นเดียวกับภาษาโปรแกรมอื่นๆ Python ยังใช้ลูป แต่แทนที่จะใช้ช่วงของลูปที่แตกต่างกัน กลับถูกจำกัดไว้เพียงสองลูปเท่านั้น “While loop” และ “for loop”

  • ในขณะที่ลูปจะถูกดำเนินการโดยขึ้นอยู่กับว่าคำสั่งแบบมีเงื่อนไขเป็นจริงหรือเท็จ
  • สำหรับลูปเรียกว่าตัววนซ้ำ โดยจะวนซ้ำองค์ประกอบตามเงื่อนไขที่ตั้งไว้
  • Python For loops ยังสามารถนำไปใช้กับชุดของสิ่งอื่นๆ มากมาย (ระบุคอลเลกชันขององค์ประกอบที่เราต้องการวนซ้ำ)
  • เบรกพอยต์ถูกใช้ใน For Loop เพื่อหยุดหรือยุติโปรแกรม ณ จุดใดจุดหนึ่ง
  • คำสั่ง Continue จะดำเนินการพิมพ์คำสั่งต่อไป และพิมพ์ผลลัพธ์ตามเงื่อนไขที่กำหนด
  • ฟังก์ชันระบุใน "for loop" ส่งคืนสมาชิกของคอลเลกชันที่เรากำลังดูด้วยหมายเลขดัชนี

Python 2 ตัวอย่าง

รหัสข้างต้นคือ Python 3 ตัวอย่าง หากคุณต้องการรันอิน Python 2 โปรดพิจารณาโค้ดต่อไปนี้

# How to use "While Loop"
#Example file for working with loops
#

x=0
#define a while loop
while(x <4):
		print x
		x = x+1

#How to use "For Loop"
#Example file for working with loops
#

x=0
#define a while loop
#	while(x <4):
#		print x
#		x = x+1

#Define a for loop 
for x in range(2,7):
		print x

#How to use For Loop for String
#use a for loop over a collection
	Months = ["Jan","Feb","Mar","April","May","June"]
	for m in Months:
		print m
		

#How to use break statements in For Loop
	#use a for loop over a collection
	#Months = ["Jan","Feb","Mar","April","May","June"]
	#for m in Months:
		#print m
		
# use the break and continue statements
		for x in range (10,20):
			if (x == 15): break
			#if (x % 2 == 0) : continue
			print x

#How to use "continue statement" in For Loop
	#use a for loop over a collection
	#Months = ["Jan","Feb","Mar","April","May","June"]
	#for m in Months:
		#print m
		
# use the break and continue statements		
		for x in range (10,20):
			#if (x == 15): break
			if (x % 5 == 0) : continue
			print x

#How to use "enumerate" function for "For Loop"
	#use a for loop over a collection
	Months = ["Jan","Feb","Mar","April","May","June"]
	for i, m in enumerate (Months):
		print i,m
		
# use the break and continue statements
		#for x in range (10,20):
		#if (x == 15): break
		#if (x % 5 == 0) : continue
		#print x

Output:

0
1
2
3

2
3
4
5
6

Jan
Feb
Mar
April
May
June

10
11
12
13
14

11
12
13
14
16
17
18
19

0 Jan
1 Feb
2 Mar
3 April
4 May
5 June

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

ลูป for จะวนซ้ำตามลำดับที่ทราบ เช่น รายการหรือช่วง ในขณะที่ลูป while จะทำงานต่อไปจนกว่าเงื่อนไขจะเป็นเท็จ ใช้ลูป for เมื่อทราบจำนวนรายการ และใช้ลูป while สำหรับการวนซ้ำแบบไม่จำกัด

คำสั่ง break จะออกจากลูปทั้งหมดทันที ในขณะที่ continue จะข้ามเฉพาะรอบปัจจุบันและไปยังรอบถัดไป break หยุดลูปทั้งหมด ในขณะที่ continue ทำให้ลูปทำงานต่อไป

คำสั่ง `pass` เป็นตัวยึดตำแหน่งว่างเปล่าที่ไม่ทำอะไรเลย ใช้ในกรณีที่... Python ไวยากรณ์นี้ต้องการคำสั่ง แต่ไม่จำเป็นต้องมีการกระทำใดๆ เช่น ตัวลูปที่ว่างเปล่า หรือส่วนที่ยังไม่ได้ดำเนินการซึ่งคุณวางแผนจะทำให้เสร็จสมบูรณ์ในภายหลัง

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

ใช้คำสั่ง `while True:` เพื่อทำซ้ำไปเรื่อยๆ แล้วหยุดด้วยคำสั่ง `break` เมื่อตรงตามเงื่อนไข Python ไม่มีลูป do-while ในตัว ดังนั้นการใช้ while True ร่วมกับ break จึงเป็นวิธีทั่วไปในการจำลองการทำงานของลูป do-while

คำสั่ง `break` จะออกจากลูปภายในสุดที่บรรจุคำสั่งนั้นเท่านั้น ดังนั้นลูปภายนอกจะยังคงทำงานต่อไป หากต้องการออกจากทุกลูปพร้อมกัน ให้ใช้ตัวแปรแฟล็ก หรือย้ายลูปไปไว้ในฟังก์ชันแล้วส่งค่าคืน

ใช่แล้ว ผู้ช่วย AI สามารถสร้างลูป for และ while จากคำอธิบายธรรมดา อธิบายข้อผิดพลาด ตรวจจับลูปอนันต์และข้อผิดพลาดแบบ off-by-one และแนะนำตัวเลือกที่ดูสะอาดตากว่า เช่น list comprehensions หรือ enumerate() สำหรับการเข้าถึงดัชนี

ใช่แล้ว GitHub Copilot จะเติมคำอัตโนมัติสำหรับลูป for และ while รวมถึงคำสั่ง break, continue และ enumerate จากความคิดเห็นหรือโค้ดใกล้เคียง เครื่องมือ AI ของ Agentic ทำได้มากกว่านั้น โดยจะปรับโครงสร้างลูปหรือแก้ไขข้อผิดพลาดทั่วทั้งไฟล์โดยอัตโนมัติ

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