0Pricing
Python Academy · บทเรียน

ลูปซ้อนกันและรูปแบบการวนซ้ำ

ผสานลูปซ้อนกันเพื่อสร้างตาราง รูปแบบ และการสะสมค่า

ลูปซ้อนกันและรูปแบบการวนซ้ำ เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

บทนำ

การนำลูปมาทำงานร่วมกันช่วยให้สร้างรูปแบบต่าง ๆ เช่น การวนผ่านเมทริกซ์ การค้นหาหลายระดับ และการสร้างชุดผสมได้

ลูปซ้อนพื้นฐาน

ลูป for สองชั้น: ลูปชั้นนอกทำงาน N รอบ ส่วนลูปชั้นในทำงาน M รอบต่อการทำงานหนึ่งรอบของลูปชั้นนอก รวมทั้งหมด N*M รอบ
for i in range(3):
    for j in range(3):
        print(i, j)

ตารางสูตรคูณ

ลูปซ้อนเหมาะสำหรับสร้างตารางโดยธรรมชาติ ลูปชั้นนอกแทนแถว ส่วนลูปชั้นในแทนคอลัมน์
for i in range(1, 4):
    for j in range(1, 4):
        print(f'{i*j:3}', end='')
    print()

รูปแบบสามเหลี่ยม

พิมพ์ * ตามจำนวน i ในแต่ละแถว: for i in range(1,6): print('*'*i) ตัวอย่างนี้แสดงให้เห็นว่าจำนวนรอบของลูปชั้นในขึ้นอยู่กับลูปชั้นนอกอย่างไร
for i in range(1, 6):
    print('*' * i)

การวนผ่านเมทริกซ์

ลูปซ้อนเป็นวิธีมาตรฐานในการเข้าถึงทุกเซลล์ของรายการสองมิติ
matrix = [[1,2,3],[4,5,6]]
for row in matrix:
    for val in row:
        print(val, end=' ')
    print()

รูปแบบการสะสมค่า

หาผลรวมของสมาชิกทั้งหมด: total = 0; for row in matrix: for v in row: total += v
matrix = [[1,2],[3,4]]
total = sum(v for row in matrix for v in row)
print(total)

การค้นหาสมาชิก

ค้นหาค่าในรายการสองมิติและบันทึกตำแหน่งของค่านั้นด้วยลูปซ้อน
matrix = [[1,2,3],[4,5,6],[7,8,9]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        if val == 5:
            print(f'Found at ({i},{j})')

ชุดผสมแบบไม่ซ้ำ

for i in range(n): for j in range(i+1, n): จะสร้างคู่ที่ไม่ซ้ำกันทั้งหมดจากรายการ
items = ['a','b','c']
for i in range(len(items)):
    for j in range(i+1, len(items)):
        print(items[i], items[j])

ประสิทธิภาพของลูปซ้อน

O(n^2) เป็นความซับซ้อนที่พบได้บ่อยสำหรับลูปซ้อน หากลูปชั้นในค้นหาใน dict แทนการไล่ตรวจรายการ จะลดความซับซ้อนเป็น O(n) ได้
# Efficient: use a set for inner lookup
data = {1, 2, 3, 4}
result = [x for x in range(10) if x in data]  # O(n)
print(result)

การทำให้แบนด้วยคอมเพรเฮนชันซ้อน

[x for row in matrix for x in row] เป็นคอมเพรเฮนชันซ้อนแบบแบน อ่านจากซ้ายไปขวา โดยลูปชั้นนอกจะมาก่อน
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

การออกจากลูปซ้อน

ใช้ตัวแปรธง หรือใส่ลูปไว้ในฟังก์ชันแล้วใช้ return เพื่อออกจากหลายระดับอย่างเป็นระเบียบ
def find_in_matrix(matrix, target):
    for i, row in enumerate(matrix):
        for j, val in enumerate(row):
            if val == target:
                return (i, j)
    return None
print(find_in_matrix([[1,2],[3,4]], 3))

ตรวจสอบอย่างรวดเร็ว

ลูปซ้อนสองชั้นที่ใช้ range(4) และ range(3) จะทำงานทั้งหมดกี่รอบ

สรุปทบทวน

ลูปซ้อนมีทั้งหมด N*M รอบ ใช้สร้างรูปแบบต่าง ๆ วนผ่านเมทริกซ์ และสร้างชุดผสม ใช้คอมเพรเฮนชันเพื่อทำให้แบน และใช้ return หรือตัวแปรธงเพื่อออกจากลูปซ้อน

เรียนรู้ต่อไป

ทำได้ดีมากครับ โปรดไปยังบทเรียนถัดไปเพื่อพัฒนาทักษะของคุณต่อไป

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

บทเรียน “ลูปซ้อนกันและรูปแบบการวนซ้ำ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ลูปซ้อนกันและรูปแบบการวนซ้ำ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ลูปซ้อนกันและรูปแบบการวนซ้ำ”

ผสานลูปซ้อนกันเพื่อสร้างตาราง รูปแบบ และการสะสมค่า คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “ลูปซ้อนกันและรูปแบบการวนซ้ำ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. คำสั่ง if / elif / else
  2. ลูป for และ range()
  3. ลูป while และการควบคุมลูป
  4. ลูปซ้อนกันและรูปแบบการวนซ้ำ
← กลับไปที่ Python Academy