CodeGym /Kursy /Python SELF PL /Jeszcze trochę o pętlach i if-ach

Jeszcze trochę o pętlach i if-ach

Python SELF PL
Poziom 4 , Lekcja 5
Dostępny

11.1 Operator trójargumentowy

W Pythonie istnieje tak zwany operator trójargumentowy, który w zasadzie jest zmodyfikowanym operatorem if else.

Załóżmy, że masz kod:


if a < b:
   min = a
else:
   min = b

Aby taki prosty kod nie zajmował dużo miejsca, wymyślono dla niego kompaktową formę zapisu. Wygląda ona tak:


min = a if a < b else b

Ogólny wygląd operatora trójargumentowego można opisać formą:


zmienna = wartość1 if warunek else wartość2

Jeśli warunek jest prawdziwy, to zmiennej przypisywana jest wartość1, jeśli jest fałszywy — wartość2.

Zwróć uwagę, że po warunku nie stawiamy dwukropka.

11.2 Operator else w pętlach

W Pythonie, operator else jest często kojarzony z operatorami warunkowymi if. Jednak jego użycie nie ogranicza się do tego i można go również stosować w pętlach for i while.

Ten nieoczywisty aspekt else w kontekście pętli może być trudny do zrozumienia dla początkujących, ale otwiera ciekawe możliwości zarządzania przepływem programu.

Jak działa else w pętlach

W pętlach else wykonuje się po zakończeniu pracy pętli, ale tylko wtedy, gdy pętla zakończyła się normalnie (to znaczy nie została przerwana przez break). Ta cecha czyni else przydatnym dla scenariuszy, w których trzeba sprawdzić, czy pętla została przerwana przedwcześnie.

Przykład użycia w pętli for:


for i in range(3):
    password = input('Podaj hasło: ')
    if password == 'sekret':
        print('Hasło przyjęte.')
        break
else:
    print('Brak prób wpisu lub wszystkie wpisane hasła są nieprawidłowe.')               

Tutaj else uruchamia się, jeśli użytkownik trzy razy wprowadzi błędne hasło. Jeśli użytkownik poda poprawne hasło, pętla przerywa się break, a blok else nie jest wykonywany.

Przykład użycia w pętli while:


n = 5
while n > 0:
    print(n)
    n -= 1
else:
    print('Pętla zakończyła się normalnie.')               

W tym przypadku else uruchamia się po tym, jak pętla zakończy się naturalnie, ponieważ warunek stał się fałszywy.

Praktyczne zastosowanie

Użycie else w pętlach może być szczególnie przydatne w algorytmach wyszukiwania, gdzie trzeba określić, czy wyszukiwanie było udane. Na przykład, przy wyszukiwaniu elementu na liście, który nie istnieje, można użyć else do wyświetlenia wiadomości o niepowodzeniu po zakończeniu pętli.

Używaj else w pętlach jasno i konsekwentnie, aby nie wprowadzać w błąd tych, którzy będą czytać twój kod. Pamiętaj, że else w pętlach nie zawsze jest intuicyjny, dlatego warto dodawać komentarze lub wybierać inne metody implementacji logiki, jeśli to sprawia, że kod jest bardziej zrozumiały.

11.3 Zagnieżdżone pętle

W Pythonie można napisać bardzo skomplikowaną logikę w bardzo kompaktowy sposób. W niektórych przypadkach potrzebne będą zagnieżdżone if-y, w innych — zagnieżdżone pętle. O niektórych niuansach ich działania teraz porozmawiamy:

Zagnieżdżona pętla oznacza obecność jednej pętli wewnątrz drugiej. Pozwala to na przykład na przetwarzanie tablic wielowymiarowych, list list lub innych zagnieżdżonych struktur danych.

Zagnieżdżone pętle składają się z zewnętrznej pętli i jednego lub kilku wewnętrznych cykli. Za każdym razem, gdy zewnętrzna pętla wykonuje jedną iterację, wewnętrzna pętla wykonuje się w całości:


for i in range(3):  # Zewnętrzna pętla
    for j in range(3):  # Wewnętrzna pętla
        print(f"({i}, {j})")               

Z punktu widzenia zewnętrznej pętli, wewnętrzna pętla i jej zawartość to po prostu blok poleceń, które wykonują się dla każdej iteracji zewnętrznej pętli. Zewnętrzna pętla nie zwraca uwagi na to, co ma w środku, ile tam jest pętli itd. Ona po prostu wykonuje swój wewnętrzny blok poleceń za każdym razem dla zmiennej ze swojej listy.

Stwórzmy teraz tabliczkę mnożenia — zagnieżdżone pętle idealnie pasują do tego zadania. Tworzenie tabliczki mnożenia za pomocą zagnieżdżonych pętli, gdzie jedna pętla odpowiada za mnożnik, a druga za mnożną:


n = 5
for i in range(1, n + 1):
    for j in range(1, n + 1):
        print(f"{i} * {j} = {i * j}", end='\t')
    print()  # Przejście do nowej linii dla następnego mnożnika               

Ten przykład wyświetli tabelę:


1 * 1 = 1	1 * 2 = 2	1 * 3 = 3	1 * 4 = 4	1 * 5 = 5	
2 * 1 = 2	2 * 2 = 4	2 * 3 = 6	2 * 4 = 8	2 * 5 = 10	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	3 * 4 = 12	3 * 5 = 15	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	4 * 5 = 20	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25

Aby lepiej zrozumieć zagnieżdżone pętle, musisz po prostu więcej ćwiczyć — to najszybszy sposób, aby opanować niemal każdą nieoczywistą rzecz w programowaniu.

1
Опрос
Pętle i warunkowe,  4 уровень,  5 лекция
недоступен
Pętle i warunkowe
Pętle i warunkowe
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION