Python Academy · leksjon

Nestede løkker og løkkemønstre

Kombiner nestede løkker for rutenett, mønstre og akkumulering.

Leksjon 4 av 414 trinn

Nestede løkker og løkkemønstre er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Introduksjon

Ved å kombinere løkker kan du bruke mønstre som matrisegjennomgang, søk på flere nivåer og generering av kombinasjoner.

Grunnleggende nestet løkke

To for-løkker: Den ytre kjører N ganger, og den indre kjører M ganger per iterasjon av den ytre — totalt N*M iterasjoner.
for i in range(3):
    for j in range(3):
        print(i, j)

Multiplikasjonstabell

Nestede løkker produserer naturlig tabeller. Den ytre løkken representerer raden, og den indre kolonnen.
for i in range(1, 4):
    for j in range(1, 4):
        print(f'{i*j:3}', end='')
    print()

Trekantmønster

Skriv ut * i ganger per rad: for i in range(1,6): print('*'*i). Dette viser hvordan antallet i den indre løkken avhenger av den ytre.
for i in range(1, 6):
    print('*' * i)

Gjennomgang av en matrise

Nestede løkker er den vanlige måten å besøke hver celle i en todimensjonal liste på.
matrix = [[1,2,3],[4,5,6]]
for row in matrix:
    for val in row:
        print(val, end=' ')
    print()

Akkumuleringsmønster

Summer alle elementene: 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)

Finne elementer

Søk etter en verdi i en todimensjonal liste, og registrer plasseringen med en nestet løkke.
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})')

Kombinasjoner uten gjentakelse

for i in range(n): for j in range(i+1, n): genererer alle unike par fra en liste.
items = ['a','b','c']
for i in range(len(items)):
    for j in range(i+1, len(items)):
        print(items[i], items[j])

Effektivitet for nestede løkker

O(n^2) er vanlig for nestede løkker. Hvis den indre løkken gjør et oppslag i en dict i stedet for å søke gjennom en liste, kan du redusere dette til 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)

Flating med nestet list comprehension

[x for row in matrix for x in row] er en nestet list comprehension som flater ut resultatet. Les den fra venstre mot høyre: den ytre løkken kommer først.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

Avslutte nestede løkker

Bruk et flagg, eller legg løkkene i en funksjon og bruk return for å avslutte flere nivåer på en ryddig måte.
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))

Kort sjekk

Hva er det totale antallet iterasjoner for to nestede løkker med range(4) og range(3)?

Oppsummering

Nestede løkker: N*M totale iterasjoner. Bruk dem til mønstre, matrisegjennomgang og kombinasjoner. Flat ut med en comprehension. Avslutt med return eller et flagg.

Fortsett

Godt jobbet! Gå videre til neste leksjon for å fortsette å utvikle ferdighetene dine.
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Nestede løkker og løkkemønstre» gratis?

Ja – hele teksten i «Nestede løkker og løkkemønstre» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Nestede løkker og løkkemønstre»?

Kombiner nestede løkker for rutenett, mønstre og akkumulering. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Nestede løkker og løkkemønstre»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. if / elif / else-setninger
  2. for-løkker og range()
  3. while-løkker og løkkekontroll
  4. Nestede løkker og løkkemønstre
← Tilbake til Python Academy