Pętla zagnieżdżona
Część sekcji Podstawy ścieżki Python w Coddy. Lekcja 41 z 77.
Pętla zagnieżdżona to pętla wewnątrz innej pętli. Pętla wewnętrzna wykonuje wszystkie swoje iteracje przy każdej iteracji pętli zewnętrznej.
Zacznijmy od prostej pętli zagnieżdżonej, aby zrozumieć tę koncepcję:
rows = 3
cols = 2
# Pętla zewnętrzna
for i in range(rows):
print(f"Outer loop iteration: {i}")
# Pętla wewnętrzna
for j in range(cols):
print(f" Inner loop iteration: {j}")Po uruchomieniu tego kodu zobaczysz:
Outer loop iteration: 0
Inner loop iteration: 0
Inner loop iteration: 1
Outer loop iteration: 1
Inner loop iteration: 0
Inner loop iteration: 1
Outer loop iteration: 2
Inner loop iteration: 0
Inner loop iteration: 1Zauważ, że przy każdej iteracji pętli zewnętrznej pętla wewnętrzna wykonuje wszystkie swoje iteracje. Każda pętla ma własny licznik: j zaczyna ponownie od 0 za każdym razem, gdy uruchamia się pętla zewnętrzna, natomiast rows i cols pozostają takie same i jedynie informują pętle, kiedy mają się zatrzymać.
Teraz zobaczmy praktyczny przykład — wypisywanie prostego wzoru:
# Wypisz prostokąt gwiazdek o wymiarach 2x3
for row in range(2): # 2 wiersze
line = ""
for col in range(3): # 3 kolumny
line += "*"
print(line)
# Wynik:
# ***
# ***Pętla zewnętrzna kontroluje, ile wierszy wypisujemy, a pętla wewnętrzna buduje każdy wiersz, dodając gwiazdki.
Wyzwanie
ŁatwyNapisz kod, który wypisuje wzór prostokąta z gwiazdek (*) przy użyciu zagnieżdżonych pętli.
Twój program powinien:
- Odczytać dwie liczby całkowite:
rowsicols - Użyć zagnieżdżonej struktury pętli do wypisania wzoru
- Pętla zewnętrzna powinna przechodzić przez każdy wiersz
- Pętla wewnętrzna powinna tworzyć każdy wiersz z odpowiednią liczbą gwiazdek
- Wypisać każdy ukończony wiersz
Przykład: jeśli dane wejściowe to 3 wiersze i 4 kolumny, wynik powinien wyglądać tak:
****
****
****Użyj nowego licznika w każdej pętli (na przykład i dla wierszy i j dla gwiazdek w wierszu) i porównuj go z rows lub cols. Nie zmieniaj samych rows ani cols: każdy wiersz potrzebuje ponownie cols.
Spróbuj swoich sił
# Wczytaj liczbę wierszy i kolumn
rows = int(input())
cols = int(input())
# Napisz tutaj zagnieżdżone pętle
# Pętla zewnętrzna dla wierszy
# Pętla wewnętrzna dla kolumnTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka – podstawy logikiOperatory logiczne, część 3Operatory logiczne, część 47Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz13Listy — zagadnienia zaawansowane
Wycinanie list — część 1Wycinanie list — część 2Operatory sekwencjiPrzynależność2Zmienne
LiczbyCiąg znakówWartość logicznaKonwencje nazewnictwaPuste zmiennePodsumowanie — inicjalizacja zmiennych8Pętle
Pętla forPętla whilePrzerwijKontynuujPowtórka – silniaFunkcja rangePętla zagnieżdżonaPowtórka – dane wejściowe dynamiczne3Operatory, część 1
Operatory arytmetyczneOperator moduloSkróty arytmetycznePowtórka — prosta matematykaOperatory porównania6Podstawowe wejście i wyjście
WyjścieWyjście ze zmiennymiWejścieKonwersja typówPowtórka — do 120Powtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumentyWartość zwracanaPowtórka — funkcja SigmaPowtórka — funkcja walidującaWartości domyślnePoćwicz samodzielnie: Kompilator Python online