Python Instrukcje warunkowe: IF…Else, ELIF i Switch Case

⚡ Inteligentne podsumowanie

Python Instrukcje warunkowe sterują przepływem programu, wykonując określone bloki kodu tylko wtedy, gdy wyrażenia boolowskie zwracają wartość true. Obejmują one if, else, elif, zagnieżdżony if, operator trójargumentowy oraz dopasowywanie wzorców strukturalnych, co zapewnia przejrzystą, opartą na decyzjach logikę.

  • Koncepcja główna: Instrukcja if uruchamia swój wcięty blok tylko wtedy, gdy warunek zostanie oceniony jako prawdziwy, tworząc podstawę podejmowania decyzji w Python.
  • Alternatywy uchwytu: Dodaj else jako ścieżkę zapasową i elif, aby przetestować dodatkowe warunki w sekwencji bez głębokiego zagnieżdżania.
  • Unikaj błędów logicznych: Użyj pojedynczego ciągu if-elif-else zamiast niezależnych instrukcji if, jeśli powinien zostać zastosowany dokładnie jeden wynik.
  • Napisz zwięźle Code: Zastosuj wyrażenie trójargumentowe value_if_true, jeśli condition else value_if_false, aby przypisać wartość w jednym czytelnym wierszu.
  • Nowoczesne rozgałęzienia: Zastąp długie łańcuchy elif mapą słownikowąping lub wprowadzone w instrukcji match-case Python 3.10 dla czystszego wyboru wielodrożnego.

Python Instrukcje warunkowe

Czym są instrukcje warunkowe Python?

Instrukcje warunkowe w Python Wykonują różne obliczenia lub działania w zależności od tego, czy dane ograniczenie boolowskie jest prawdą, czy fałszem. Pozwalają programowi podejmować decyzje i podążać różnymi ścieżkami zamiast wykonywać każdy wiersz po kolei. Python, instrukcje warunkowe są obsługiwane przez if Instrukcja i jej odpowiedniki: else, elif i zagnieżdżone if.

Czym jest Python Jeśli oświadczenie?

Python instrukcja if Służy do operacji podejmowania decyzji. Zawiera kod, który jest uruchamiany tylko wtedy, gdy warunek podany w instrukcji if jest spełniony. Jeśli warunek jest fałszywy, zamiast niego uruchamiana jest opcjonalna instrukcja else, przechowująca kod warunku else. Aby wykonać działanie w oparciu o jeden warunek, gdy inny nie jest spełniony, należy użyć Python instrukcja if-else.

Python if Składnia instrukcji:

if expression:
    statement
else:
    statement

Python jeśli...else Schemat blokowy

Python schemat blokowy if…else pokazujący gałęzie true i false

Powyższy schemat blokowy pokazuje, jak sterowanie przepływa przez instrukcję if-else. Zobaczmy przykład Python instrukcja if-else w działaniu:

Python przykład wyniku instrukcji if w edytorze

# Example file for working with conditional statements
def main():
    x, y = 2, 8
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Linia 3: Definiujemy dwie zmienne x, y = 2, 8.
  • Code Linia 4: Instrukcja if sprawdza warunek x < y, który jest Prawdziwy w tym przypadku.
  • Code Linia 5: Zmienna st jest ustawiona na „x jest mniejsze niż y”.
  • Code Linia 6: Wiersz print(st) wyprowadza wartość st, która brzmi „x jest mniejsze od y”.

Co się dzieje, gdy warunek „jeśli” nie jest spełniony

Kontynuując poprzedni przykład, zobaczmy, co się stanie, gdy warunek if w Python nie jest spełniony. Gdy warunek jest fałszywy i nie istnieje żadna gałąź else, wcięty kod jest całkowicie pomijany.

Python błąd, gdy warunek if nie jest spełniony

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Linia 3: Definiujemy dwie zmienne x, y = 8, 4.
  • Code Linia 4: Instrukcja if sprawdza warunek x < y, który jest Fałszywy w tym przypadku.
  • Code Linia 5: Zmienna st jest NIE ustaw na „x jest mniejsze niż y”.
  • Code Linia 6: Wiersz print(st) próbuje wydrukować zmienną, która nigdy nie została zadeklarowana, więc Python podnosi A NazwaBłąd.
⚠ Ostrzeżenie: Odwoływanie się do zmiennej przypisanej tylko w bloku if to częsty błąd początkujących. Należy podać gałąź else lub nadać zmiennej wartość domyślną przed instrukcją if.

Jak używać warunku „else”

Aby uniknąć powyższego błędu, możesz dodać warunek else. Warunek else jest używany, gdy trzeba ocenić jedno polecenie na podstawie innego. Jeśli jeden warunek jest fałszywy, blok else zapewnia alternatywną ścieżkę, dzięki czemu program nadal generuje wynik.

Przykład:

Python przykład warunku if-else

# Example file for working with conditional statements
def main():
    x, y = 8, 4
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Linia 3: Definiujemy dwie zmienne x, y = 8, 4.
  • Code Linia 4: Instrukcja if sprawdza warunek x < y, który jest Fałszywy w tym przypadku.
  • Code Linia 6: Przepływ sterowania programem przechodzi do warunku else.
  • Code Linia 7: Zmienna st jest ustawiona na „x jest większy niż ty.
  • Code Linia 8: Wiersz print(st) wyprowadza wartość st, która brzmi „x jest większe od y”.

Kiedy warunek „else” nie działa

Warunek else nie zawsze daje pożądany rezultat. Może on wydrukować błędny wynik, gdy występuje błąd w logice programu. Dzieje się tak zazwyczaj, gdy trzeba uzasadnić więcej niż dwa polecenia lub warunki w programie. Przykład pomoże Ci zrozumieć tę koncepcję.

Tutaj obie zmienne są takie same (8, 8), ale wynik programu jest taki sam „x jest większe od y” który jest ŹLEDzieje się tak, ponieważ program sprawdza pierwszy warunek (warunek if), a gdy ten się nie powiedzie, wyświetla drugi warunek (warunek else) jako domyślny. W następnym kroku pokażemy, jak naprawić ten błąd.

Python warunek else generujący błędny wynik

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()

Jak korzystać z warunku „elif”

Aby naprawić poprzedni błąd spowodowany warunkiem else, możemy użyć Elif Instrukcja. Używając warunku elif, instruujesz program, aby przetestował trzecią możliwość, gdy pierwszy warunek jest fałszywy. Możesz połączyć wiele warunków elif, aby sprawdzić czwartą, piątą i kolejne możliwości w kodzie.

Przykład:

Python przykład warunku elif

# Example file for working with conditional statements
def main():
    x, y = 8, 8
    if(x < y):
        st = "x is less than y"
    elif(x == y):
        st = "x is same as y"
    else:
        st = "x is greater than y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Linia 3: Definiujemy dwie zmienne x, y = 8, 8.
  • Code Linia 4: Instrukcja if sprawdza warunek x < y, który jest Fałszywy w tym przypadku.
  • Code Linia 6: Przepływ sterowania programem przechodzi do warunku elif. Sprawdza on, czy x == y, co jest prawdą.
  • Code Linia 7: Zmienna st jest ustawiona na „x jest sama, jak y. ”
  • Code Linia 10: Sterowanie programem opuszcza instrukcję if (nie dochodzi do instrukcji else) i wyświetla st. Na wyjściu pojawia się komunikat „x jest takie samo jak y”, co jest poprawne.

Jak wykonać instrukcję warunkową przy użyciu minimalnej liczby instrukcji Code

Teraz, gdy możesz pisać pełne bloki if-elif-else, Python pozwala skondensować prosty warunek do jednego wiersza. Zamiast pisać oddzielny kod dla każdej gałęzi, możesz użyć wyrażenie trójskładnikowe (warunkowe).

Składnia:

value_if_true if condition else value_if_false

Przykład:

Python przykład jednowierszowego warunkowego wyrażenia trójkowego

def main():
    x, y = 10, 8
    st = "x is less than y" if (x < y) else "x is greater than or equal to y"
    print(st)

if __name__ == "__main__":
    main()
  • Code Linia 2: Definiujemy dwie zmienne x, y = 10, 8.
  • Code Linia 3: Zmienna st jest ustawiana na „x jest mniejsze niż y”, jeśli x < y; w przeciwnym wypadku staje się „x jest większe lub równe y”. Ponieważ tutaj x > y, st staje się drugą wartością.
  • Code Linia 4: Wyświetla wartość st i zwraca poprawny wynik.

Python Zagnieżdżona instrukcja if

Zagnieżdżona instrukcja if umieszcza jedną instrukcję if w drugiej, co jest przydatne, gdy decyzja zależy od drugiego warunku. Poniższy przykład demonstruje zagnieżdżoną instrukcję if w Python który oblicza statekping koszt zależy od kraju i całkowitej wartości zamówienia.

total = 100
# country = "US"
country = "AU"

if country == "US":
    if total <= 50:
        print("Shipping Cost is $50")
    elif total <= 100:
        print("Shipping Cost is $25")
    elif total <= 150:
        print("Shipping Cost is $5")
    else:
        print("FREE")

if country == "AU":
    if total <= 50:
        print("Shipping Cost is $100")
    else:
        print("FREE")

Odkomentuj wiersz 2 w powyższym kodzie, usuń komentarz z wiersza 3 i uruchom kod ponownie, aby zobaczyć, jak dane wyjściowe zmienią się dla innego kraju.

Przełącz opis przypadku w Python

Czym jest polecenie Switch?

Instrukcja switch to wielotorowa instrukcja rozgałęzienia, która porównuje wartość zmiennej z wartościami określonymi w instrukcjach case. Przez wiele lat Python język nie posiadał instrukcji switch, więc programiści zaimplementowali to samo zachowanie Python słownik mapaping.

Przykład użycia mapy słownikowejping:

def switch_example(argument):
    switcher = {
        0: "This is Case Zero",
        1: "This is Case One",
        2: "This is Case Two",
    }
    return switcher.get(argument, "nothing")

if __name__ == "__main__":
    argument = 1
    print(switch_example(argument))

Przełącz obudowę z dopasowaniem (Python 3.10 i Later)

Ponieważ Python 3.10 (wydany w październiku 2021 r.), Python zapewnia natywny etui na zapałki Instrukcja, znana jako dopasowywanie wzorców strukturalnych. Oferuje ona czystą i czytelną alternatywę dla długich łańcuchów elif i podejścia słownikowego pokazanego powyżej.

def switch_example(argument):
    match argument:
        case 0:
            return "This is Case Zero"
        case 1:
            return "This is Case One"
        case 2:
            return "This is Case Two"
        case _:
            return "nothing"

if __name__ == "__main__":
    print(switch_example(1))

Podkreślenie (_) pełni funkcję przypadku domyślnego, dopasowując każdą wartość nieobsługiwaną przez wcześniejsze przypadki, tak jak wartość domyślna w tradycyjnym poleceniu switch.

✅ Wskazówka: Jeśli jesteś na, użyj zapałek Python 3.10 lub nowsza. W przypadku starszych wersji mapa słownikaping pozostaje standardowym sposobem emulacji instrukcji switch.

if vs elif vs else: szybkie porównanie

Użyj tego porównania, aby zdecydować, która struktura warunkowa pasuje do Twojej logiki podejmowania decyzji.

Zestawienie sprzedażyCelKiedy użyć
ifUruchamia blok, gdy warunek jest spełnionyPojedyncza decyzja typu tak/nie
Jeśli inaczejZapewnia rozwiązanie awaryjne, gdy warunek jest fałszywyDwa wzajemnie wykluczające się wyniki
ElifTestuje dodatkowe warunki w sekwencjiTrzy lub więcej możliwości
Zagnieżdżone ifUmieszcza if wewnątrz innego ifDecyzja, która zależy od drugiego warunku
PotrójnyKondensuje if-else do jednego wierszaProste przypisanie wartości
etui na zapałkiDopasowuje wartość do wielu wzorcówRozgałęzienie wielokierunkowe (Python 3.10 +)
⚠ Uwaga: Python 2 osiągnęły koniec cyklu życia 1 stycznia 2020 r., a wszystkie przykłady w tym artykule korzystają z Python 3 składnia. W Python 2, print było poleceniem (na przykład print st), a nie funkcją, więc powyższy kod nie będzie działał bez zmian Python 2.

FAQ

Instrukcja if rozpoczyna proces podejmowania decyzji i jest zawsze oceniana. Instrukcja elif (else-if) jest sprawdzana tylko wtedy, gdy poprzedzające ją warunki if lub elif są fałszywe, co pozwala na przetestowanie kilku możliwości w jednym łańcuchu podczas wykonywania dokładnie jednego bloku.

Tak. Ponieważ Python W wersji 3.10 instrukcja match-case zapewnia natywne rozgałęzianie w stylu switch poprzez dopasowywanie wzorców strukturalnych. W starszych wersjach programiści emulują switch za pomocą mapy słownikowej.ping za pomocą metody get() w celu dostarczenia wartości domyślnej.

Użyj wyrażenia trójargumentowego: value_if_true if condition else value_if_false. Na przykład st = „low” if x < 10 else „high” przypisuje wartość w jednym czytelnym wierszu bez pełnego bloku if-else.

Tak. Asystenci kodowania AI potrafią generować, objaśniać i debugować logikę if-elif-else z poziomu komunikatu w języku zrozumiałym. Są one pomocne w nauce, ale mimo to należy sprawdzić wynik, aby upewnić się, że warunki i wcięcia odpowiadają zamierzonej logice.

Tak. Logika warunkowa jest fundamentem sztucznej inteligencji. Drzewa decyzyjne, systemy oparte na regułach i potoki wstępnego przetwarzania danych opierają się na rozgałęzieniach if-else, aby wybierać akcje, filtrować dane i kontrolować sposób, w jaki model obsługuje różne dane wejściowe.

Podsumuj ten post następująco: