Логічні оператори
Люди кажуть «так і так», «так або ні», «точно ні». У Python логічні оператори and, or та not формально виражають ці ідеї та повертають булеві значення (True/False), які використовуються з операціями порівняння у if/while.
Що означає кожен оператор
Пріоритет
not має вищий пріоритет, ніж and, який має вищий пріоритет, ніж or (not > and > or). Використовуйте дужки у разі сумнівів.
Наприклад, age >= 18 and has_id дорівнює True лише якщо обидві перевірки виконуються:
123age = 21 has_id = True print(age >= 18 and has_id) # True
Таблиця істинності
Таблиця істинності містить усі можливі значення істинності для вхідних даних і показує результат логічного виразу. Це компактний спосіб аналізу логіки без виконання коду.
Використання таблиці
Якщо X дорівнює False, а Y дорівнює True, тоді X and Y дорівнює False, X or Y дорівнює True, а not X дорівнює True.
Повернення значень і коротке замикання (разом)
and та or не завжди повертають слова True/False, вони повертають один зі своїх операндів, і Python може завершити обчислення раніше, якщо результат вже відомий.
-
A and B: -
Якщо
Aє хибним значенням, весь вираз є хибним і результатом будеA(Python не обчислюєB); -
Якщо
Aє істинним значенням, результат залежить відBі вираз обчислюється якB. -
A or B: -
Якщо
Aє істинним значенням, вираз є істинним і результатом будеA(Python не обчислюєB); -
Якщо
Aє хибним значенням, результат залежить відBі вираз обчислюється якB. -
not Xзавжди повертає справжнє булеве значення:TrueабоFalse.
1234567891011121314151617# Choosing a display name for a user profile username = "" # user didn't set a custom name print(username or "Guest") # "Guest" → fallback to default name username = "Alice" print(username or "Guest") # "Alice" → custom name is used # Checking login attempts and access permissions login_attempts = 0 access_level = 123 print(login_attempts and access_level) # 0 → login not yet attempted login_attempts = 5 print(login_attempts and access_level) # 123 → user has access after attempts # Checking empty and non-empty values print(not 0, not "Hello") # True False → 0 is falsey, non-empty string is truthy
1. Заповніть пропуски True або False. Нехай X = True, Y = False.
2. Яке твердження відповідає класичній логіці для "ані X, ані Y"?
3. Що повертає цей вираз?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain what "short-circuiting" means in more detail?
What are some common mistakes when using these logical operators in Python?
Can you give more real-world examples of using `and`, `or`, and `not`?
Awesome!
Completion rate improved to 5.26
Логічні оператори
Свайпніть щоб показати меню
Люди кажуть «так і так», «так або ні», «точно ні». У Python логічні оператори and, or та not формально виражають ці ідеї та повертають булеві значення (True/False), які використовуються з операціями порівняння у if/while.
Що означає кожен оператор
Пріоритет
not має вищий пріоритет, ніж and, який має вищий пріоритет, ніж or (not > and > or). Використовуйте дужки у разі сумнівів.
Наприклад, age >= 18 and has_id дорівнює True лише якщо обидві перевірки виконуються:
123age = 21 has_id = True print(age >= 18 and has_id) # True
Таблиця істинності
Таблиця істинності містить усі можливі значення істинності для вхідних даних і показує результат логічного виразу. Це компактний спосіб аналізу логіки без виконання коду.
Використання таблиці
Якщо X дорівнює False, а Y дорівнює True, тоді X and Y дорівнює False, X or Y дорівнює True, а not X дорівнює True.
Повернення значень і коротке замикання (разом)
and та or не завжди повертають слова True/False, вони повертають один зі своїх операндів, і Python може завершити обчислення раніше, якщо результат вже відомий.
-
A and B: -
Якщо
Aє хибним значенням, весь вираз є хибним і результатом будеA(Python не обчислюєB); -
Якщо
Aє істинним значенням, результат залежить відBі вираз обчислюється якB. -
A or B: -
Якщо
Aє істинним значенням, вираз є істинним і результатом будеA(Python не обчислюєB); -
Якщо
Aє хибним значенням, результат залежить відBі вираз обчислюється якB. -
not Xзавжди повертає справжнє булеве значення:TrueабоFalse.
1234567891011121314151617# Choosing a display name for a user profile username = "" # user didn't set a custom name print(username or "Guest") # "Guest" → fallback to default name username = "Alice" print(username or "Guest") # "Alice" → custom name is used # Checking login attempts and access permissions login_attempts = 0 access_level = 123 print(login_attempts and access_level) # 0 → login not yet attempted login_attempts = 5 print(login_attempts and access_level) # 123 → user has access after attempts # Checking empty and non-empty values print(not 0, not "Hello") # True False → 0 is falsey, non-empty string is truthy
1. Заповніть пропуски True або False. Нехай X = True, Y = False.
2. Яке твердження відповідає класичній логіці для "ані X, ані Y"?
3. Що повертає цей вираз?
Дякуємо за ваш відгук!