Transcript for:
Pętle w Pythonie: Wprowadzenie i przykład

cześć witam cię bardzo serdecznie w piątej lekcji kursu programowania w języku python dzisiaj zajmiemy się zagadnieniem pętli w programowaniu z użyciem języka python dobra do czego będą potrzebne w ogóle są pętlę i do czego one nam służą do tej pory instrukcję kodu którą nawet gdy pisaliśmy jakakolwiek by to była instrukcja kodu na przykład w link z czymkolwiek tak wykona się tyle razy ile zostało tutaj zawarta w tym pliku no czyli każda linia dokładnie tylko jeden raz bym chciał powiedzieć identyczną linię kilka razy no to musiałbym ją na przykład zduplikować sześć razy aby została wyświetlona właśnie 6 razy no to jest trochę redundantne w programowaniu nazywa się to tak profesjonalnie redundantne kodem czyli takim podzielonym dostajemy kilka razy ten sam kota tego raczej w programowaniu unikamy staramy się żeby to nie było jak najmniej no tak ich zastosowanie właśnie przychodzą z pomocą nam pętlę jak sama nazwa mówi pętle mogą się zapętlać czyli czyli wykonywać coś w takim łuku wykonywać coś wkoło na okrągło no właśnie dzisiaj powiemy sobie właśnie o pierwszej z dwóch pętli dostępnych w języku python ta droga jest pętlą obiektową i wrócimy do niej w adekwatny do tego momencie kiedy już będziemy poznamy gdyby zagadnienie obiektów i tak dalej a drugi aspekt jest bardziej w ten sam obiekt to wam ta natomiast dzisiaj poznamy taka najbardziej prymitywna można by powiedzieć że można by rzec zacznijmy jednak od tak zwanej zmiennej implementacyjnych a która przyda nam się i pozwoli nam zachować pętlę aby ta pętla nie była przypadkiem pewno nieskończoną no właśnie bo w przypadku pętli trzeba niezwykle bardzo uważać jak w masło których instrukcjach na to aby nasz kot nie stał się nagle nieskończony wobec sama nazwa mówi pętli coś co wykonuje się wkoło możemy doprowadzić do takiego momentu kiedy ten kod będzie wykonywał się wkoło i nigdy nie będzie miał wyjścia i to nazywamy programowaniem tak zwaną magdą nieskończoną z angielskiego infinite lub i tego raczej staramy się zazwyczaj uniknąć chociaż w takim przypadkiem pętli nieskończonej sobie można jeszcze poradzić w inny sposób również wam pokażę na sam koniec tego odcinka ale zaczniemy wszystko od początku skoro ma być o pętlach no to przyda się słodko kluczowe które oznacza w które oznacza prostu pętle piszemy to słówko ale jak wielu innych językach programowania również pętla jest dostępna tutaj również piszemy pętle taką domyślną tak najbardziej standardową poprzez słowo kluczowe wow ale flow i na język polski można przetłumaczyć jako dopóki i dokładnie ta pętla to będzie taki sposób że dopóki warunek po jej prawej stronie jest prawdziwy to wykonuj segment kodu który za chwilę piszemy jaki warunek tutaj musimy postawić no i jeden z tych który poznaliśmy w przypadku poznawania instrukcji warunkowych na przykład taki w na przykład instrukcje porównania tak na przykład jakiś operator porównania ważne aby po prawej stronie pętli while był zwracany typ logiczny bulion czyli śrut lub falls czyli dokładnie tak samo jak w przypadku instrukcji warunkowych życiem i fakt dobra i napiszmy sobie tutaj taki warunek aby ta pętla while wykona się powiedzmy 5 razy czyli dopóki i jest mniejsze od pięciu to dwukropek za każdym obiektem takiej pętli będę chciał opisywać wartość tego i które za chwilę będzie zmieniane oczywiście to co nawet co należy do pętli while wyszczególnione poprzez po raz kolejny cztery spacje wcięcie czyli jeden znak tabulacji po prostu to co należy pod pętle to coś wykonywać właśnie cyklicznie w pętli to należy właśnie wszystkie te elementy które będą teraz tutaj z czterospadowym dachem 5 mm czyli z wyróżnieniem z populacją no dobra metoda wydrukujemy sobie zmienną i ale zobaczycie że po powrocie do pętli pętla między działa w ten sposób że kiedy wykona całe swoje ciało czyli wszystkie te elementy które mają cztery spacje wcięcie to wraca z powrotem do początku tej pętli i zaczynamy czytać od początku czyli dopóki i znowu się sprawdzenie warunku to wykonujemy jeszcze raz i to jest bardzo ważne że tutaj ten warunek jest tak zwanym warunkiem kontynuacji a niewiele osób często mówi w programowaniu jest to pętla z warunkiem zakończenia pętli to nie do końca jest prawdą bo trzeba sobie powiedzieć że kiedy tutaj warunek jest prawdziwy to wtedy pętla się wykonuje a kiedy jest fałszywy to będą się nie wykonuje więc dużo bardziej adekwatną nazwą powiedzeniem jest tutaj że to jest warunek kontynuacji pętli kiedy ta pętla się kontynuować no bo wtedy jest zwracana jest wartość true czyli wartość prawdy no ale wróćmy do nie uwagę na to że to znaczy zmienna i po wydrukowaniu na ekran naszej konsoli dalej będzie przechowywała wartości 0 i wracając do warunku to jest prawdziwy 30 jest mniejsze od pięciu i faktycznie ona się wykona drugi raz no i z powrotem ludzi do warunku tej pętli który sprawdzi czy 0 jest większe lub mniejsze od pięciu oczywiście dalej jest no i w tym momencie zyskaliśmy właśnie pętle nieskończoną której tak bardzo chcemy uniknąć w programowaniu no bo brakuje nam tutaj tak zwany implementacji naszej zmiennej no właśnie nasze zmiany iteracyjne jak to się nazwałem zmiana interakcyjna od prostu iteracji czyli od pętli po angielsku i teraz że to jest po prostu pętla tutaj przydałby się to znaczy zmienne i zwiększyć nie mamy operatora implementacji tak tak jak będzie symbolem podwójnego znak dodawania plus plus musimy zrobić to za pomocą zwykłego dodania do wartości i jeszcze wyniki no nie musimy robić to w taki sposób że przepisujemy to i dodajmy jeszcze jeden poznaliśmy również skrócone operator dodawania które wyglądają w taki sposób że najpierw ustawiamy symbol później znak równa się ze znakiem liście wartość dodana do dodania to będzie dokładnie to samo jednak używamy skróconych operator dodawania bo sam one myśli dużo bardziej przejrzyste dobra zobaczmy w tym momencie czy będą faktycznie się wykonana moje założone 5 razy powinna wypisać wartości od 0 do 4 bo zobaczcie że kiedy wartość zostanie zwiększona tutaj do pięciu to pętla while sprawdzi czy 50 mniejsze od pięciu tutaj jest błędem kiedy będę miał i uzyskać wartość warstw wykonuje się kot który nie należy do pętli while czyli prostu jest bez tego wcięcia 4 spacerowego czyli dalsza część przodu po prostu możemy sobie tutaj wpisać informacje koniec aby zobaczyć czy faktycznie po przerwaniu takiej pętli while wyświetlą się dalsze instrukcje które zawarte są w pliku moim przypadku diy zobaczmy wyświetlimy teraz otwieramy ekranie konsoli i widzimy się na ekranie konsoli faktycznie mamy wypisane liczby 0 1 2 3 4 i informacje koniec zawarte są tutaj w tej klinice print koniec no wszystko działa i w ten sposób właśnie wyglądają pętlę while że pętla wykonuje swoje ciało za określoną ilość razy ile razy jest to o tym stanowi nam warunek który w tej pętli while się znajduje bardzo ważne jest to aby pamiętać żeby nie przypadkiem nie stworzyć pętli nieskończonej wtedy kiedy na przykład ten niby tutaj nie było a to za chwilę sobie pokażemy i specjalnie zwołanej taką pętlę nieskończoną przeklęci robić nie powinno jednak kiedy to zacznie jeszcze pokażę taki jeden przypadek że pętla while ma taką możliwość że nie wykona się ani razu nie może pętla jest stworzona prawidłowo w dobry sposób i napiszemy się jej ciało napiszemy ciało i tak dalej naprzód i duża instrukcji kodu przyjrzymy się później głowy dlaczego te instrukcje kodu nie zostały wykonane na przykład ani razu do pętli while na samym początku sprawdza warunek trzyma się wykonywać więc i założenia wyjściowe mogą być takie że ona nie wykona się ani razu ponieważ na wejściu już warunek będzie niespełniony czy będzie zwracana wartość falls i żeby po prostu nie było zdziwienie kiedy i nadamy wartość 5 warunek będzie fałszywe to taka pewna nie wykona się tutaj ani razu jedyne co uzyskamy na ekranie naszej konsoli do informacji print koniec ponieważ koniecznie należy oczywiście do ciała pętli while not a tak na marginesie to ta informacja że pętlę i dopuszcza taką możliwość że pętla nie wykona się ani razu no co jest trochę dziwne ale może jest taka możliwość oczywiście kiedy warunek wejściowych od razu nie jest spełniony ale wróćmy do tej naszej pętli nieskończonej chwilowo przywrócimy tutaj zawartości wartości 0 ale wskazujemy linię która odpowiada nam za implementację implementacja jak już powiedziałem mówimy o to prezentacja o zwiększonej wartości o 1 co ty implementacji nazywamy właśnie zwiększenie pewnej zmiennej wartości o jeden dobra z użyciem tutaj w przypadku języka python takiego operatora usuńmy właśnie tę linijkę implementacji no i w taki sposób powinno wytworzyć pętle nieskończoną zobaczmy czy tak faktycznie się stanie otworzę teraz ekranie konsoli widzę że na ekranie konsoli cały czas wyskakują i tutaj wartości 0 na bok i przyjął wartość 0 na początku i cały czas przyjmuje na nowo wartości 0 i ta pętla jest tutaj nieskończonych ciągach sprawdzamy jest warunek który jest prawdziwe następnie wykonywane są instrukcje pętli while drukowanie wartości zmiennej i o nazwie i i z powrotem wracamy do warunków i ta pętla jest tutaj nie skończone jedyne co mogę w tym przypadku zrobić bo ten program będzie tak dożył aż do końca aż nie masz nie było tutaj prądu tego programu się tutaj zatrzymać i nie żaden sposób mogę to zrobić cześć ręcznie tak aby nie można powiedzieć z ekranu tutaj konsoli czyli zatrzymać tą samą funkcję fajny i w tym momencie informację że program został zakończony ale jednak z kodem błędu minus jeden który oznacza jakiś tam pewien kod błędu w sobie powinniśmy jedynie kod błędu 0 oznacza że program przebiegła pomyślnie bez żadnego błędu to mówiłam już w jednym z odcinków lecz co możemy zrobić taką pętlę nieskończoną czy ona faktycznie jest tak nieskończona do końca no niekoniecznie może zastąpić sobie tutaj zmienną warto ten warunek czy i jest mniejszy od pięciu po prostu logiczną wartością trudno mi więcej to będzie dokładnie to samo na tle nieskończoność najszybszy sposób możemy uzyskać taki sposób jak tutaj bezpośrednio z klawiatury ustawię wartość oczywiście trump który odpowiada prawdzie za pomocą i co dokładnie robią to samo ten warunek który był sprawdzany w trudnych warunkach nie sprawdzamy możemy to sobie szybko udowodnić że ta pętla to działa dokładnie tak samo z wami witam tutaj teraz robię to dlatego aby posłużyć się moją wiedzą intuicyjną i równa się 0 ale w nieco inny sposób ta pętla jest będzie tutaj zawsze nieskończona ponieważ istnieje tutaj wartość true na sztywno wpisaną wartość prawdy prawdziwa ale ja sobie skorzystam teraz z mojej zmienne i po to aby ją za każdym razem zwiększyć tak jak robiliśmy to wcześniej z użyciem skórzanego operator dodawania czyli i plus c równa się 0 przepraszam wartość 1 zwiększanie o 1 i w pewnym momencie chcę wstawić postawić taki warunek że kiedy zajdzie prawda to będę chciała przerwać to pętle jakby tak bezpośrednio z przodu ale także ręcznie tak na sztywno więc sprawdzam sobie warunek ich jeżeli moje i jest na przykład większy od pięciu większe będzie równe powiedzmy pięciu to dwukropek to zrób to i tutaj istnieje nowe słówko nowe które należy zapamiętać jest to słowo kluczowe break piszemy po angielsku a nie z polski bardzo łatwo to przetłumaczyć jako złam przerwali to są takie najbardziej często tłumaczenie na język polski złam bądź przerwali tłumaczenie na język polski i dokładnie to robi się w konkretny sposób korek po prostu łamie przerywa naszą pętlę w której aktualnie się znajdujemy w pętlę do której słówko dobrej został umiejscowiony umieszczone to w tym momencie to słówko dobrej przerywa cały obiekt naszej pętli i po prostu wyskakujemy z tej pętli nie kończąc oczywiście całego programu lecz zaczynając po prostu linijka zaraz za pętlą linii w linii która skończyła się pętla więc w ten sposób pomimo że pętla wydaje się nieskończony na pierwszy rzut oka ale patrząc na taką pętlę możemy stwierdzić że pętla jest oczywiście nieskończona ponieważ posiada tutaj wartość true prawdy to jednak odpalając taki program okaże się że nie do końca tak jest ponieważ pętla wyświetliła wartości od 0 do 4 krajach wtedy robiliśmy to wcześniej wyszła z pętli dokończyła swój problem ponieważ wyświetlone na ekranie konsoli informacje koniec i dopiero zakończyła program zobaczcie z kodem błędu 0 który nie oznacza tak naprawdę żadnego błędu czyli break jest taka jakby alternatywą taką furtką takim wyjściem awaryjnym do zakończenia pętli w inny sposób jeżeli byśmy na przykład skonstruowali warunek pętli na zawsze prawdziwy lub nawet celowo zrobili pętlę celowo prawdziwą która ma się przerwać jednak jakichś specyficznych określonych wartości jakich przypadkach to służy do tego słówko break dobra oprócz słówka break posiadamy jeszcze jedno słówko kluczowe które działa w nieco odmienny sposób do słupka break jednak ja sobie przekształcę troszeczkę tutaj to będzie aby ona wykonywała się więcej razy co najmniej chce aby na pewno wykonała się co najmniej od zera do dziesięciu więc te podstawy warunek wyjścia z tej pętli powyżej 10 lat wykonało się słówko dobrej powyżej 10 teraz na ekranie konsoli zmieni się to tylko na tyle drukujemy wartości aż od zera do dziesięciu i wtedy wyświetlamy informację koniec jednak ja tutaj zrobię jeszcze jedną rzecz a mianowicie będę chciał jak gdyby pomijać wszystkie wartości aby nie były wyświetlane na ekranie konsoli takie wartości które nie są wartościami parzystym i i troszeczkę tutaj muszę przekształcić kolejność wykonywania tych operacji chciałbym aby najpierw i było zwiększone o 15 nie było drukowana wartość zmiennej i jednak to i ma być drukowane tylko w pewnych przypadkach wystąpiliśmy kiedy wartości są parzyste bo tylko pomyśleć zakładasz że chce drukować tylko parzyste wartości na ekranie konsoli nie mówię tutaj oczywiście zrobić odpowiedniego i faktury sprawdzał mi to czy dana liczba jest parzysta i wtedy wyświetlał to zmienną i bądź nie ale chcę użyć do nowego specjalnego słowa kluczowego aby je poznać i zrobimy to w troszkę inny sposób a mianowicie też użyję tutaj instrukcja warunkowa if-else ale chcę zrobić taki przypadek dla którego nie chcę wykonywać jakby dalszej części kodu czyli nie sprawdzam tutaj czy wartości jest parzysta tylko te sprawy właśnie czy warto jest nieparzysta jak tutaj można sprawdzić parzyste nieparzyste liczby do użyciem operatora którego może do tej pory tak nie wykorzystywaliśmy ale mówiliśmy o nim w oko przypadku operatora arytmetyczny matematycznych i jest operator resztę z dzielenia czyli piszemy go znakiem procenta mogę podzielić moją zmienną i z zewnątrz ale wziąć tego jak gdyby resztę z dzielenia przez wartość 2 jak dobrze wiemy gdzie lub dowolnej liczby przez wartość 2 aby odwrócić wartość 0 dla liczb parzystych albo wartość 1 dla liczb nieparzystych nigdy nie zwróci wartości równej przez to co dzielimy tylko zawsze wartości mniejsze to tak na marginesie to więc cokolwiek wartość na przykład 5 resztę z dzielenia zawsze będzie mniejsza od piątka czyli 4 bądź jeszcze mniejsza na przykład 0 tak 0 1 2 3 bądź 4 tutaj ustawiając wartość 2 sprawdzamy czy reszta jest 15 reszta jest zero i tutaj jeżeli porównamy do wartości 1 mamy 100 procent pewności że dzienna liczba jest nieparzysta tak było w przypadku liczb parzystych byłoby byłaby to wartość 0 i w takim przypadku kiedy wartość wynosi tutaj jeden resztę z dzielenia wynosi 21 jest liczba nieparzysta no to my nie chcemy wydrukować tej wartości dlatego też powiedziałem że nie będziemy sobie tutaj wstawiać bezpośrednio tej linijki pa i i tylko użyjemy nowego słowa kluczowego które pozwoli nam ominąć wszystkie dalsze instrukcje zawarte wewnątrz pętli i wykonać pętlę jakby kolejny obiekt tej pętli zaczynając od początku od góry ale z pominięciem wszystkiego co stoi posłów kluczowym kąt i nie o to słowo kluczowe piszemy dokładnie w taki sposób continue na język polski bardzo łatwo to przetłumaczyć jako kontynuuj no i sama nazwa nam tutaj chyba adekwatnie mówi co ta instrukcja kodu tutaj może robić ponieważ kontynuuj oczywiście mówi nam o tym że z tego miejsca kodu kiedy napotkani continue skocz do kolejnego obiegu pętli wykonaj kolejny obiekt pętli ale z pominięciem wszystkich instrukcji kody które znajdują się pod w continue czyli w tym przypadku widzimy że liczba która będzie nieparzysta nie zostanie tutaj wydrukowana nie wyjdziemy coś co prawda z tej pętli kiedy liczba będzie nieparzysta ale kiedy później zostanie zwiększone to do liczby nieparzyste kolejnej wydrukowane z tutaj i i tak i tak wyjdziemy z pętli zobaczmy czy to faktycznie działa w taki sposób jakby to przedstawiam tak faktycznie to tutaj działa widzicie teraz na ekranie konsoli do pomijamy 0 bo tutaj implementacja zachodzi jako pierwsza od razu to zwiększamy do 112 jednak nie została wydrukowana bo od razu wykonał się i w spełniającego warunek że liczba nieparzysta to nie zostały wydrukowane od razu w podnieśliśmy to bardzo wartości drugiej gdzie to zostało wydrukowane jednak nie spełnią warunków końca pętli i tak dalej i tak dalej kiedy tutaj była wartość 10 no to też nie spełnia więc warunku wyjścia z pętli zostało zwiększone do 1111 nie przerwało nam jednak pętli ponieważ spełniony warunek kontynuacji pętlę do wykonania się jeszcze raz 11 stacji włączeniu do 12 co pozwoliło nam drukować 12 na ekranie naszej konsoli dopiero to spełnia warunek że i jest większe od dziesięciu faktycznie 12 zwiększa dziesięciu i w tym momencie przetrwaliśmy ten cześć widoczne z resztą po tym że ostatnio z wydrukowanym wartości jest tutaj 12 przypominam nie sprzedaliśmy pętli dla wartości 11 pomimo że to spełnia warunek 11 minut dziesięciu ponieważ najpierw wykonała się instrukcja skoku bo tak mówimy o tych dwóch instrukcjach z continue te instrukcje nazywamy instrukcjami skoku bo one gdzieś przeskakuje on i najpierw wykonać instrukcja skoku która mówi nam właśnie kontynuuj i kontynuuj to pętle po co zwiększyło nam już wartość zmiany i do 12 więc ta widzimy potwierdzenie że ta część zgodnie została wykonana w żaden sposób więc tak działa instrukcja skoku continue i break to jest do zapamiętania no i oczywiście budowa z pętli while dzisiejszej lekcji myślę że to jest dość proste to jest jedna z pętli takich standardowych w języku python którą możemy używać mówię ona jest bardzo prosta istnieje jeszcze jedna pętla która jednak działa w sposób obiektywy ich ona zostanie pokazane w jednym z kolejnych odcinków do których bardzo serdecznie zapraszam cię już teraz liczę oczywiście na subskrypcję mojego kanału abyś nie przegapił kolejnych odcinków z serii kursu programowania w języku python liczę również na oceny i komentarze materiału cześć i do usłyszenia w kolejnych lekcjach kursu