⏱️ ~9 นาที

การวนลูป (for & while)

ทำซ้ำใน Python ซึ่งมี for ที่ใช้ง่ายกว่าหลายภาษา

ลูปใน Python มี 2 แบบหลัก

  1. for — วนในข้อมูลแบบกลุ่ม หรือวนตามจำนวน (ด้วย range)
  2. while — วนตราบใดที่เงื่อนไขยังเป็นจริง

Python มี for ที่ ใช้ง่ายกว่าหลายภาษา ลองดู

1. for กับ range() — วนตามจำนวน

for i in range(5):
    print(i)
# แสดง 0 1 2 3 4

range(5) = สร้างลำดับ 0,1,2,3,4 (เริ่ม 0, ไม่รวม 5)

range แบบระบุช่วง

for i in range(1, 6):       # 1 ถึง 5
    print(i)

for i in range(0, 10, 2):   # 0,2,4,6,8 (ก้านทีละ 2)
    print(i)

รูปแบบ: range(start, stop, step)

2. for วนในข้อมูลแบบกลุ่ม

fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม"]

for fruit in fruits:
    print(fruit)
# แอปเปิ้ล
# กล้วย
# ส้ม

อ่านเป็นภาษาไทยได้เลย: "สำหรับ fruit แต่ละตัว ใน fruits ทำ..." 🎯

วนใน string ได้ด้วย

for letter in "Hello":
    print(letter)
# H e l l o

3. while — วนตามเงื่อนไข

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

ใช้เมื่อ ไม่รู้จำนวนรอบที่แน่นอน

⚠️ ระวัง infinite loop! ถ้าลืม count += 1 โปรแกรมจะวนไม่รู้จบ กด Ctrl + C เพื่อหยุด

ควบคุมลูป

break — หยุดทันที

for i in range(1, 10):
    if i == 5:
        break
    print(i)
# 1 2 3 4 (หยุดก่อนเลข 5)

continue — ข้ามรอบนี้

for i in range(1, 6):
    if i == 3:
        continue
    print(i)
# 1 2 4 5 (ข้ามเลข 3)

enumerate — เอาทั้ง index และค่า

fruits = ["แอปเปิ้ล", "กล้วย", "ส้ม"]

for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")
# 0: แอปเปิ้ล
# 1: กล้วย
# 2: ส้ม

ใช้บ่อยเวลาต้องการเลขลำดับไปพร้อมกับค่า

ตัวอย่างจริง: รวมเลข 1-100

total = 0
for i in range(1, 101):    # รวม 100 ด้วย ต้องใส่ 101
    total += i
print(total)               # 5050

ตัวอย่าง: เฉพาะเลขคู่

for i in range(1, 11):
    if i % 2 != 0:
        continue           # ข้ามเลขคี่
    print(i)
# 2 4 6 8 10

ฟีเจอร์พิเศษ: else ของลูป

Python มี else ต่อท้ายลูปได้ — ทำเมื่อลูป จบปกติ (ไม่โดน break):

for i in range(5):
    print(i)
else:
    print("จบลูปแล้ว")

เลือกลูปแบบไหน?

สถานการณ์ใช้
รู้จำนวนรอบ หรือวนในลิสต์for
มีแค่เงื่อนไขหยุดwhile
ต้องการ index + ค่าfor + enumerate

สรุป

แนวคิดสรุป
for x in range(n)วน 0 ถึง n-1
for x in listวนสมาชิกในลิสต์
whileวนตามเงื่อนไข
breakหยุดลูป
continueข้ามรอบ
enumerateได้ทั้ง index และค่า

บทหน้า: แพ็กโค้ดให้ใช้ซ้ำด้วย ฟังก์ชัน ใน Python 🧩

อ่านจบแล้ว? ทำเครื่องหมายว่าเสร็จเพื่อบันทึกความคืบหน้า

🧠

แบบทดสอบ

ตอบให้ครบแล้วกด “ตรวจคำตอบ” เพื่อเช็คความเข้าใจ

  1. 1. ลูป for ใน Python ใช้ทำอะไรเป็นหลัก?

  2. 2. ผลลัพธ์ของ list(range(3)) คือ?

  3. 3. คำสั่งใดใช้หยุดลูปทันที?

กำลังโหลด…