Как работают условия if... elif... else в Python? А что такое True и False?

Python использует логические переменные для оценки условий. Логические значения True и False возвращаются при сравнении или оценке выражения. Например:

x = 2
print(x == 2) # prints out True
print(x == 3) # prints out False
print(x < 3) # prints out True

Обратите внимание, что присвоение переменной выполняется с помощью одного оператора равенства "=", тогда как сравнение между двумя переменными выполняется с помощью оператора двойного равенства "==". Оператор "не равно" помечен как "!=".

Булевы операторы

Логические операторы "and" и "or" позволяют создавать сложные логические выражения, например:

name = "John"
age = 23
if name == "John" and age == 23:
    print("Your name is John, and you are also 23 years old.")

Оператор "in"

Оператор "in" может быть использован для проверки, существует ли указанный объект в итерируемом контейнере объекта, таком как список:

name = "John"
if name in ["John", "Rick"]:
    print("Your name is either John or Rick.")

Python использует отступы для определения блоков кода вместо скобок. Стандартный отступ Python - это 4 пробела, хотя табуляция и любой другой размер пробела будут работать, если они единообразны. Обратите внимание, что кодовые блоки не нуждаются в завершении.

Вот пример использования оператора if в Python с использованием блоков кода:

statement = False
another_statement = True
if statement is true:
    # do something
    pass
elif another_statement is true: # else if
    # do something else
    pass
else:
    # do another thing
    pass

Например:

x = 2
if x == 2:
    print("x equals two!")
else:
    print("x does not equal to two.")

Утверждение оценивается как истинное, если является правильным одно из следующих утверждений: 1. Логическая переменная "True" задается или вычисляется с использованием выражения, такого как арифметическое сравнение. 2. Объект, который не считается "пустым", пропускается.

Вот несколько примеров для объектов, которые рассматриваются как пустые: 1. An empty string: "" 2. An empty list: [] 3. The number zero: 0 4. The false boolean variable: False

Оператор "is"

В отличие от оператора двойного равенства "==", оператор "is" соответствует не значениям переменных, а самим экземплярам. Например:

x = [1,2,3]
y = [1,2,3]
print(x == y) # Prints out True
print(x is y) # Prints out False

Оператор "not"

Использование "not" перед логическим выражением инвертирует его:

print(not False) # Prints out True
print((not False) == (False)) # Prints out False

Упражнение

Измените переменные в первом разделе, чтобы каждый оператор if разрешался как True.

# измени код ниже
number = 10
second_number = 10
first_array = []
second_array = [1,2,3]

if number > 15:
	print("1")

if first_array:
	print("2")

if len(second_array) == 2:
	print("3")

if len(first_array) + len(second_array) == 5:
	print("4")

if first_array and first_array[0] == 1:
	print("5")

if not second_number:
	print("6")

Решение упражнения

# измени код ниже
number = 16
second_number = 0
first_array = [1,2,3]
second_array = [1,2]

if number > 15:
	print("1")

if first_array:
	print("2")

if len(second_array) == 2:
	print("3")

if len(first_array) + len(second_array) == 5:
	print("4")

if first_array and first_array[0] == 1:
	print("5")

if not second_number:
	print("6")