[Python] pętla w pętli

Awatar użytkownika
waliant
Użytkownik
Użytkownik
Posty: 1801
Rejestracja: 9 gru 2010, o 22:16
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 275 razy
Pomógł: 183 razy

[Python] pętla w pętli

Post autor: waliant »

Witam, mam problem ze zrozumieniem działania 'pętli w pętli'. Bardzo proszę o wytłumaczenie na takim przykładzie:

Kod: Zaznacz cały

#!/usr/bin/env python3
for i in range(5):
    print('a',end='')
    for k in range(i):
        print('b',end='')
czym jest tutaj \(\displaystyle{ i}\) oraz \(\displaystyle{ k}\), dlaczego program drukuje takie coś:

Kod: Zaznacz cały

aababbabbbabbb
.


Bardzo proszę o pomoc.
Andreas
Użytkownik
Użytkownik
Posty: 1130
Rejestracja: 1 lis 2008, o 22:33
Płeć: Mężczyzna
Podziękował: 72 razy
Pomógł: 156 razy

[Python] pętla w pętli

Post autor: Andreas »

W pierwszej pętli \(\displaystyle{ i}\) zmienia się od 0 do 4, czyli pierwsza pętla wykona się 5 razy. - jest ok, bo mamy 5 liter \(\displaystyle{ a}\).
Druga pętla za pierwszym razem nie wykona się ani razu, bo \(\displaystyle{ i}\) jest równe 0.
Działa to mniej więcej tak

Kod: Zaznacz cały

i=0; wypisz "a"
wypisz "b" 0 razy
i=1; wypisz "a"
wypisz "b" 1 raz
...
i=4; wypisz "a"
wypisz "b" 4 razy
Awatar użytkownika
waliant
Użytkownik
Użytkownik
Posty: 1801
Rejestracja: 9 gru 2010, o 22:16
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 275 razy
Pomógł: 183 razy

[Python] pętla w pętli

Post autor: waliant »

a jakbym chciał napisać za pomocą tego takie coś:
Ostatnio zmieniony 5 mar 2014, o 20:40 przez waliant, łącznie zmieniany 1 raz.
Andreas
Użytkownik
Użytkownik
Posty: 1130
Rejestracja: 1 lis 2008, o 22:33
Płeć: Mężczyzna
Podziękował: 72 razy
Pomógł: 156 razy

[Python] pętla w pętli

Post autor: Andreas »

Nie rozumiem co to jest.
Awatar użytkownika
waliant
Użytkownik
Użytkownik
Posty: 1801
Rejestracja: 9 gru 2010, o 22:16
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 275 razy
Pomógł: 183 razy

[Python] pętla w pętli

Post autor: waliant »

program ma rysować takie cos
Ostatnio zmieniony 5 mar 2014, o 20:26 przez waliant, łącznie zmieniany 1 raz.
Andreas
Użytkownik
Użytkownik
Posty: 1130
Rejestracja: 1 lis 2008, o 22:33
Płeć: Mężczyzna
Podziękował: 72 razy
Pomógł: 156 razy

[Python] pętla w pętli

Post autor: Andreas »

Narysuj to sobie na kartce w kratkę, to będzie łatwiej ci to zobaczyć.
Zewnętrzna pętla będzie jechała po wierszach i wykona się tyle razy ile jest wierszy.

Zadeklaruj dwie pomocnicze zmienne: odstepy_zew i odstepy_wew.
Na początku odstepy_zew:=n-1, a odstepy_wew:=0
i teraz przy każdym wykonaniu pętli która leci po wierszach zwiększasz i pomniejszasz o jeden te zmienne.

Kod: Zaznacz cały

dla kazdego wiersza:
 wypisz spacje odstepy_zew razy
 wypisz "*"
 wypisz spacje odstepy_wew razy
 wypisz "*"
 odstepy_zew--
 odstepy_wew++
Nie jest to do końca dobrze, bo w pierwszym wierszu jest tylko jedna "*", ale pierwszy wiersz możesz ręcznie wyświetlić, a w pętli pozostałe.
Awatar użytkownika
waliant
Użytkownik
Użytkownik
Posty: 1801
Rejestracja: 9 gru 2010, o 22:16
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 275 razy
Pomógł: 183 razy

[Python] pętla w pętli

Post autor: waliant »

Już coś mi świta aczkolwiek jestem początkujący i nie mogę za bardzo tego napisać, mógłbyś pomóc z tym deklarowaniem tych odstępów, jak to będzie bardziej w praktyce wyglądało?
Andreas
Użytkownik
Użytkownik
Posty: 1130
Rejestracja: 1 lis 2008, o 22:33
Płeć: Mężczyzna
Podziękował: 72 razy
Pomógł: 156 razy

[Python] pętla w pętli

Post autor: Andreas »

Pisałem ogólnie algorytm i pseudokod. Z tym deklarowaniem zmiennych tak napisałem, ale nie pamiętam teraz jak w pythonie się je deklarowało. Po prostu potrzebujesz dwóch dodatkowych zmiennych, które będą mówiły ile razy ma wykonać się pętla wyświetlająca odstępy. Spróbuj coś sam napisać, a jak będzie źle to poprawię.
ODPOWIEDZ