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: