Оператор if в Python - это условный оператор, который выполняет блок кода только при выполнении определённого условия. Он оценивает логическое выражение, которое возвращает True или False, и запускает блок кода с отступом, когда условие равно True. Операторы if в Python позволяют принимать решения в ваших программах, позволяя различным путям кода на основе различных условий.
Базовая синтаксис оператора if
Синтаксис оператора if в Python прост:
if condition:
# code to execute if condition is True
statement condition - это логическое выражение (например, number > 5 или name == "Alice"), которое оценивается как True или False. Если условие оценивается как True, выполняется блок кода с отступом; если False, Python полностью пропускает блок.
Пример 1: Простой оператор if
number = 10
if number > 0:
print("The number is positive") The number is positive
Пример 2: Оператор if с ложным условием
number = -5
if number > 0:
print("The number is positive")
print("This line always executes") This line always executes
Во втором примере, поскольку -5 не больше 0, оператор print внутри блока if пропускается.
Отступы в операторах if
Python полагается на отступы (пробелы в начале строки) для определения области видимости блоков кода, в отличие от других языков, использующих фигурные скобки. Все операторы внутри блока if должны иметь одинаковый отступ - обычно 4 пробела.
Правильный отступ:
age = 20
if age >= 18:
print("You are an adult")
print("You can vote")
print("You have full legal rights") Неправильный отступ (вызовет ошибку):
age = 20
if age >= 18:
print("You are an adult") # IndentationError Если вы не используете правильный отступ, Python вызовет IndentationError, потому что не может определить, какие операторы принадлежат блоку if.
Операторы сравнения с операторами if
Python поддерживает стандартные операторы сравнения, которые возвращают логические значения для использования в операторах if:
==- Равно!=- Не равно<- Меньше<=- Меньше или равно>- Больше>=- Больше или равно
Пример: Использование различных операторов сравнения
a = 33
b = 200
if b > a:
print("b is greater than a")
if a != b:
print("a and b are not equal")
if a <= 50:
print("a is 50 or less") b is greater than a a and b are not equal a is 50 or less
Несколько операторов в блоке if
Вы можете включить несколько операторов внутри блока if, пока все они имеют одинаковый уровень отступа.
Пример:
score = 95
if score >= 90:
print("Excellent work!")
print("You earned an A grade")
grade = "A"
print(f"Your grade is: {grade}") Excellent work! You earned an A grade Your grade is: A
Логические переменные в операторах if
Логические переменные могут использоваться напрямую в операторах if без операторов сравнения.
Пример:
is_logged_in = True
if is_logged_in:
print("Welcome back!")
is_raining = False
if is_raining:
print("Take an umbrella")
else:
print("Enjoy the sunshine") Welcome back! Enjoy the sunshine
Python рассматривает определённые значения как False в логическом контексте: 0, пустые строки "", None и пустые коллекции, такие как [] или {}. Все остальные значения рассматриваются как True.
Truthy и Falsy значения
Python может оценивать многие типы значений как True или False в условных операторах:
Falsy значения (оцениваются как False):
0(ноль)""(пустая строка)None[](пустой список)(пустой словарь)()(пустой кортеж)
Truthy значения (оцениваются как True):
- Любое ненулевое число (положительное или отрицательное)
- Любая непустая строка
- Непустые коллекции
Пример:
name = ""
if name:
print(f"Hello, {name}")
else:
print("Name is empty")
items = [1, 2, 3]
if items:
print("List has items") Name is empty List has items
Однострочный оператор if
Для простых условий вы можете написать оператор if в одной строке:
Стандартный формат:
temperature = 30
if temperature > 25:
print("It's hot outside") Компактный формат:
temperature = 30
if temperature > 25: print("It's hot outside") Обе версии дают одинаковый результат, но однострочный формат более лаконичен для простых операторов.
Распространённые случаи использования
Случай использования 1: Проверка пользовательского ввода
age = int(input("Enter your age: "))
if age >= 18:
print("You are eligible to vote") Случай использования 2: Проверка чётных или нечётных чисел
number = 7
if number % 2 == 0:
print(f"{number} is even") Случай использования 3: Проверка пароля
password = "secret123"
if len(password) >= 8:
print("Password is strong enough") Случай использования 4: Проверка содержимого списка
shopping_cart = ["apple", "banana", "milk"]
if "milk" in shopping_cart:
print("Milk is in your cart") Распространённые ошибки, которых следует избегать
Ошибка 1: Забыть двоеточие
# Wrong
if number > 0
print("Positive")
# Correct
if number > 0:
print("Positive") Ошибка 2: Использование = вместо ==
x = 5
# Wrong (assignment, not comparison)
if x = 5:
print("x is 5")
# Correct
if x == 5:
print("x is 5") Ошибка 3: Несогласованные отступы
# Wrong
if True:
print("Line 1")
print("Line 2") # Different indentation level
# Correct
if True:
print("Line 1")
print("Line 2") Примеры для практики
Пример 1: Проверка температуры
temperature = 22
if temperature > 30:
print("It's very hot")
if temperature > 20:
print("It's warm")
if temperature < 10:
print("It's cold") It's warm
Пример 2: Назначение оценки
marks = 85
if marks >= 90:
print("Grade: A")
if marks >= 80 and marks < 90:
print("Grade: B")
if marks >= 70 and marks < 80:
print("Grade: C") Grade: B
Пример 3: Проверка членства
username = "admin"
if username == "admin":
print("Access granted to admin panel")
print("Loading admin dashboard...") Access granted to admin panel Loading admin dashboard...
Попробуйте сами
Практикуйте то, что вы изучили, изменяя код ниже. Попробуйте изменить значения и условия, чтобы увидеть разные результаты!
// Нажмите "Запустить код" чтобы увидеть результаты
Связанные темы
Часто задаваемые вопросы
В чём разница между if и if else в Python?
Оператор if выполняет код только когда условие равно True. Оператор if else предоставляет альтернативный блок кода, который выполняется, когда условие равно False.
Нужно ли использовать скобки вокруг условия в операторах if в Python?
Нет, скобки необязательны в Python. И if (x > 5):, и if x > 5: действительны, но последний более Pythonic.
Могу ли я использовать несколько условий в одном операторе if?
Да, вы можете использовать логические операторы, такие как and, or и not, для объединения нескольких условий: if age >= 18 and has_license:.
Что произойдёт, если я не сделаю отступ кода после оператора if?
Python вызовет IndentationError, потому что требует отступ для определения блоков кода.