Python Умовні оператори: IF…Else, ELIF & Switch Case

⚡ Розумний підсумок

Python Умовні оператори спрямовують потік програми, виконуючи певні блоки коду лише тоді, коли логічні вирази мають значення true. До них належать if, else, elif, вкладені if, тернарний оператор та структурне зіставлення зі зразком для чіткої логіки, керованої рішеннями.

  • Основна концепція: Оператор if виконує свій відступний блок лише тоді, коли умова має значення true, формуючи основу для прийняття рішень у Python.
  • Альтернативи обробки: Додайте else для резервного шляху та elif для перевірки додаткових умов послідовно без глибокого вкладення.
  • Уникайте логічних помилок: Використовуйте один ланцюжок if-elif-else, а не незалежні оператори if, коли має застосовуватися лише один результат.
  • Пишіть лаконічно Code: Застосуйте потрійний вираз value_if_true if condition else value_if_false, щоб присвоїти значення в одному читабельному рядку.
  • Сучасне розгалуження: Замініть довгі ланцюжки еліфів картою словникаping або оператор match-case, представлений у Python 3.10 для чистішого багатостороннього вибору.

Python Умовні заяви

Що таке умовні оператори Python?

Умовні оператори в Python виконувати різні обчислення або дії залежно від того, чи є певне логічне обмеження істинним чи хибним. Вони дозволяють програмі приймати рішення та слідувати різними шляхами замість того, щоб виконувати кожен рядок по черзі. У Python, умовні оператори обробляються if оператор та його супутні оператори: else, elif та вкладений if.

Що таке Python Заява If?

Команда Python якщо заява використовується для операцій прийняття рішень. Він містить корпус коду, який виконується лише тоді, коли умова, задана в операторі if, є істинною. Якщо умова хибна, виконується необов'язковий оператор else, який містить код для умови else. Коли ви хочете діяти за однією умовою, коли інша не є істинною, ви використовуєте Python оператор if-else.

Python Синтаксис оператора if:

if expression:
    statement
else:
    statement

Python if…else Блок-схема

Python блок-схема if…else, що показує гілки true та false

Наведена вище блок-схема показує, як керування проходить через оператор if-else. Розглянемо приклад Python Оператор if-else у дії:

Python приклад виводу оператора if у редакторі

# 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 Лінія 3: Визначимо дві змінні x, y = 2, 8.
  • Code Лінія 4: Оператор if перевіряє умову x < y, яка є Правда в цьому випадку.
  • Code Лінія 5: Змінна st встановлюється на значення «x менше, ніж y».
  • Code Лінія 6: Рядок print(st) виводить значення st, яке дорівнює «x менше, ніж y».

Що відбувається, коли умова «якщо» не виконується

Спираючись на попередній приклад, давайте подивимося, що відбувається, коли умова if у Python не виконується. Коли умова хибна і гілки else не існує, код з відступом повністю пропускається.

Python помилка, коли умова if не виконується

# 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 Лінія 3: Визначимо дві змінні x, y = 8, 4.
  • Code Лінія 4: Оператор if перевіряє умову x < y, яка є Помилковий в цьому випадку.
  • Code Лінія 5: Змінна st це $NOT встановіть «x менше за y».
  • Code Лінія 6: Рядок print(st) намагається вивести змінну, яка ніколи не була оголошена, тому Python піднімає Помилка імені.
⚠ Попередження: Посилання на змінну, якій присвоюється значення лише всередині блоку if, є поширеною помилкою новачків. Або надайте гілку else, або надайте змінній значення за замовчуванням перед оператором if.

Як використовувати умову «інше»

Щоб уникнути вищезгаданої помилки, можна додати умову else. Умова else використовується, коли потрібно оцінити одне твердження на основі іншого. Якщо одна умова хибна, блок else надає альтернативний шлях, щоб програма все одно видала результат.

приклад:

Python приклад умови 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 Лінія 3: Визначимо дві змінні x, y = 8, 4.
  • Code Лінія 4: Оператор if перевіряє умову x < y, яка є Помилковий в цьому випадку.
  • Code Лінія 6: Потік керування програмою переходить до умови else.
  • Code Лінія 7: Змінна st встановлюється на значення «x є великий ніж у.»
  • Code Лінія 8: Рядок print(st) виводить значення st, яке дорівнює «x більше за y».

Коли умова «інше» не працює

Умова else не завжди дасть бажаний результат. Вона може вивести неправильний результат, якщо в логіці програми є недолік. Зазвичай це трапляється, коли потрібно обґрунтувати більше двох операторів або умов у програмі. Приклад допоможе вам зрозуміти цю концепцію.

Тут обидві змінні однакові (8, 8), проте вивід програми такий «x більше за y», який НЕПРАВИЛЬНОЦе відбувається тому, що програма перевіряє першу умову (умову if), і коли вона не виконується, вона друкує другу умову (умову else) як умову за замовчуванням. На наступному кроці ми побачимо, як виправити цю помилку.

Python інакше умова дає неправильний результат

# 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()

Як використовувати умову «еліф»

Щоб виправити попередню помилку, допущену умовою else, ми можемо використати Еліф оператор. Використовуючи умову elif, ви повідомляєте програмі про необхідність перевірки третьої можливості, коли перша умова хибна. Ви можете об'єднати кілька умов elif у ланцюжок, щоб перевірити четверту, п'яту та подальші можливості у вашому коді.

приклад:

Python приклад умови 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 Лінія 3: Визначимо дві змінні x, y = 8, 8.
  • Code Лінія 4: Оператор if перевіряє умову x < y, яка є Помилковий в цьому випадку.
  • Code Лінія 6: Потік керування програмою переходить до умови elif. Вона перевіряє, чи x == y, що є істинним.
  • Code Лінія 7: Змінна st встановлюється на значення «x є так само, як у.”
  • Code Лінія 10: Елемент керування програмою виходить з оператора if (він не досягне оператора else) та друкує st. Вивід має вигляд «x те саме, що й y», що правильно.

Як виконати умовний оператор за допомогою Minimal Code

Тепер, коли ви можете писати повні блоки if-elif-else, Python дозволяє вам стиснути просту умову в один рядок. Замість того, щоб писати окремий код для кожної гілки, ви можете використовувати потрійний (умовний) вираз.

Синтаксис:

value_if_true if condition else value_if_false

приклад:

Python приклад однорядкового потрійного умовного оператора

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 Лінія 2: Визначимо дві змінні x, y = 10, 8.
  • Code Лінія 3: Змінна st встановлюється на значення «x менше за y», якщо x < y; інакше вона стає «x більше або дорівнює y». Оскільки тут x > y, st стає другим значенням.
  • Code Лінія 4: Виводить значення st та видає правильний вивід.

Python Вкладений оператор if

Вкладений оператор if розміщує один оператор if всередині іншого, що корисно, коли рішення залежить від другої умови. У наступному прикладі демонструється вкладений оператор if у Python що обчислює корабельping вартість залежить від країни та загальної суми замовлення.

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")

Розкоментуйте рядок 2 у наведеному вище коді, закоментуйте рядок 3 та запустіть код ще раз, щоб побачити, як зміниться результат для іншої країни.

Переключити Case Statement на Python

Що таке оператор Switch?

Оператор switch — це оператор багатостороннього перемикання, який порівнює значення змінної зі значеннями, зазначеними в операторах case. Протягом багатьох років Python У мові не було оператора switch, тому розробники реалізували таку саму поведінку за допомогою Python словник картаping.

Приклад використання словникової картиping:

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))

Перемикач корпусу з матчем (Python 3.10 і Later)

З Python 3.10 (випущено в жовтні 2021 року), Python забезпечує рідний сірниковий футляр оператор, відомий як структурне зіставлення зі зразком. Він пропонує зрозумілу та читабельну альтернативу довгим ланцюгам ELIF та словниковому підходу, показаному вище.

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))

Підкреслення (_) діє як регістр за замовчуванням, збігаючись із будь-яким значенням, яке не оброблялося попередніми регістрами, так само, як і значення за замовчуванням у традиційному операторі switch.

✅ Порада: Використовуйте розрізнення регістру, якщо ви на Python 3.10 або новіша версія. Для старіших версій, карта словникаping залишається стандартним способом емуляції оператора switch.

if проти elif проти else: швидке порівняння

Використайте це порівняння, щоб визначити, яка умовна структура відповідає вашій логіці прийняття рішень.

ЗаяваМетаКоли використовувати
ifВиконує блок, коли умова істиннаОдне рішення «так/ні»
якщо… інакшеЗабезпечує резервний варіант, коли умова хибнаДва взаємовиключні результати
ЕліфПослідовно перевіряє додаткові умовиТри або більше можливостей
Вкладений ifРозміщує оператор if всередині іншого оператора ifРішення, яке залежить від другої умови
ТрінарнийСтискає if-else в один рядокПросте присвоєння значень
сірниковий футлярЗіставляє значення з багатьма шаблонамиБагатостороннє розгалуження (Python 3.10 +)
⚠ Примітка: Python 2 досяг кінця терміну служби 1 січня 2020 року, і всі приклади в цій статті використовують Python 3 синтаксис. У Python 2, print був оператором (наприклад, print st), а не функцією, тому наведений вище код не виконуватиметься без змін на Python 2.

Поширені запитання

Оператор if запускає процес прийняття рішення та завжди його обчислюється. Оператор elif (інакше якщо) перевіряється лише тоді, коли попередні умови if або elif є хибними, що дозволяє перевірити кілька можливостей в одному ланцюжку, поки виконується рівно один блок.

так Оскільки Python У версії 3.10 оператор match-case забезпечує вбудоване розгалуження у стилі switch через структурне зіставлення зі зразком. У старіших версіях розробники емулюють switch за допомогою словникової карти.ping за допомогою методу get() для надання значення за замовчуванням.

Використовуйте потрійний вираз: value_if_true if condition else value_if_false. Наприклад, st = “low” if x < 10 else “high” присвоює значення в одному читабельному рядку без повного блоку if-else.

Так. Помічники кодування зі штучним інтелектом можуть генерувати, пояснювати та налагоджувати логіку if-elif-else з командного рядка, написаного простою мовою. Вони корисні для навчання, але вам все одно слід переглянути результат, щоб переконатися, що умови та відступи відповідають вашій запланованій логіці.

Так. Умовна логіка є основоположною для ШІ. Дерева рішень, системи на основі правил та конвеєри попередньої обробки даних покладаються на розгалуження «якщо-інакше» для вибору дій, фільтрації даних та контролю того, як модель обробляє різні вхідні дані.

Підсумуйте цей пост за допомогою: