Оператор присваивания. Составной оператор Условный оператор. Оператор выбора
Оператор присваивания
Множественное и кортежное присваивание
Обмен значениями
Составные операторы присваивания
Составной оператор
Составной оператор
Золотое правило PEP 8
Условный оператор (if)
Истинность и ложность (Truthy / Falsy)
Пример
Тернарный оператор (Условное выражение)
Оператор выбора (match...case)
Базовый синтаксис match...case
В отличие от обычного switch, match может «разбирать» сложные структуры данных и извлекать из них переменные.
Охранные условия (Guards)
Задания
67.31K
Категория: ПрограммированиеПрограммирование

Оператор присваивания (Python)

1. Оператор присваивания. Составной оператор Условный оператор. Оператор выбора

ОП.04 Основы алгоритмизации и программирования

2. Оператор присваивания

В классических языках (C, Java) переменная — это «коробка» в
памяти, куда мы кладем значение. В Python философия иная.
Переменная в Python — это не коробка, а ярлык (ссылка) на
объект, который лежит где-то в памяти.
Оператор присваивания обозначается =
x = 10
# Создаем объект 10 и вешаем на него ярлык x
name = "Python" # Создаем строку и вешаем ярлык name

3. Множественное и кортежное присваивание

Python славится своим элегантным синтаксисом. Вы можете
присваивать значения нескольким переменным одновременно:
# Множественное присваивание одного значения
a=b=c=0
# Кортежное присваивание (распаковка)
x, y, z = 1, 2, 3

4. Обмен значениями

Благодаря распаковке, в Python обмен значениями двух
переменных делается в одну строку, без использования третьей
(буфера), как это принято в других языках:
x, y = 10, 20
x, y = y, x # Теперь x = 20, а y = 10

5. Составные операторы присваивания

Для удобства существуют сокращенные формы:
x=5
x += 3 # x = x + 3 (теперь x = 8)
x -= 2 # x = x - 2 (теперь x = 6)
x *= 2 # x = x * 2 (теперь x = 12)
x /= 4 # x = x / 4 (теперь x = 3.0)
x //= 2 # Целочисленное деление (x = 1.0)

6. Составной оператор

Простой оператор — это одна строка кода (например, x = 5 или
print("Hi")).
Составной оператор — это конструкция, которая содержит в
себе другие операторы (группы кода, блоки).
В языках вроде C++ или Java блоки кода выделяются фигурными
скобками { ... }. В Python от этого отказались. В Python
составные операторы выделяются отступами (indentation).
Синтаксис любого составного оператора выглядит так:

7. Составной оператор

Заголовок (Header):
Тело (Suite) - блок кода с одинаковым отступом

8. Золотое правило PEP 8

Для отступов используйте ровно 4 пробела. Не табуляцию, не 2
пробела, а 4.
Примеры составных операторов: циклы (for, while), условия (if),
функции (def), классы (class).
# Заголовок:
if x > 0:
# Тело (составной оператор):
print("Число положительное")
x -= 1

9. Условный оператор (if)

Условный оператор позволяет программе выполнять различные ветки
кода в зависимости от истинности некоторых условий.
age = 18
if age >= 18:
print("Доступ разрешен")
elif age >= 14:
print("Доступ ограничен")
else:
print("Доступ запрещен")

10. Истинность и ложность (Truthy / Falsy)

В Python не обязательно писать if x == True. Интерпретатор сам
приводит значения к булевому типу.
Ложными (Falsy) считаются:
False
0, 0.0
None
Пустые коллекции: "" (пустая строка), [] (пустой список), {}
(пустой словарь).
Всё остальное считается Истинным (Truthy).

11. Пример

user_name = ""
if user_name:
print(f"Привет, {user_name}!")
else:
print("Имя пользователя пустое!")

12. Тернарный оператор (Условное выражение)

Если нужно присвоить значение в зависимости от условия,
можно использовать тернарный оператор. Он позволяет
записать if-else в одну строку:
x = 10
# Синтаксис: [значение_если_True] if [условие] else
[значение_если_False]
status = "Четное" if x % 2 == 0 else "Нечетное"

13. Оператор выбора (match...case)

Долгое время в Python не было классического оператора
выбора switch...case, который есть в C, Java или JavaScript.
Программисты использовали цепочки if-elif-elif или словари.
Однако, начиная с Python 3.10, в язык был добавлен оператор
Structural Pattern Matching (Структурное сопоставление с
образцом), который закрывает эту нишу и делает гораздо
больше, чем обычный switch.

14. Базовый синтаксис match...case

Оператор match сравнивает значение с набором образцов (patterns).
# Пример: Обработка HTTP кодов состояния
status_code = 404
match status_code:
case 200:
print("OK")
case 404:
print("Not Found")
case 500:
print("Internal Server Error")
case _: # Символ "_" работает как wildcard (catch-all), аналог default в switch
print("Unknown status")

15. В отличие от обычного switch, match может «разбирать» сложные структуры данных и извлекать из них переменные.

command = "move left 5"
match command.split():
case ["move", direction, steps]:
print(f"Двигаемся {direction} на {steps} шагов")
case ["jump"]:
print("Прыжок!")
case _:
print("Неизвестная команда")

16. Охранные условия (Guards)

point = (3, 4)
match point:
case (0, 0):
print("Точка в начале координат")
case (x, y) if x == y:
print(f"Точка на диагонали: x={x}, y={y}")
case (x, y):
print(f"Обычная точка: x={x}, y={y}")

17. Задания

Задание 1. Обмен и преобразование
Даны две переменные. Поменяйте их значения местами без использования третьей переменной. Затем к первой примените увеличение
на 3, а ко второй — целочисленное деление на 4. Выведите итоговые значения.
Задание 2. Понимание отступов и логики
Представьте код, в котором есть переменная temperature. Если температура выше 30, выводится сообщение «Жарко!» и увеличивается
счётчик жарких дней. Если температура от 20 до 30 включительно — выводится «Комфортно». В противном случае выводится «Холодно».
Опишите словами: какие именно строки выполнятся, если temperature равна 25? А если 35? А если 15? Объясните, почему именно эти
строки, а не другие.
Задание 3. Проверка без сравнений
Есть имя пользователя и список покупок. Напишите программу, которая проверяет их «на истинность» (не сравнивая с пустой строкой
или пустым списком напрямую). Если имя не введено — сообщить об этом. Если корзина пуста — вывести соответствующее сообщение.
Иначе — поприветствовать пользователя и указать количество товаров.
Задание 4. Одна строка вместо четырёх
Перепишите блок if-else, который присваивает переменной status значение «Совершеннолетний» или «Несовершеннолетний» в
зависимости от возраста, в одну строку с помощью тернарного оператора.
Задание 5. Робот с командами
Напишите программу, которая обрабатывает команду в виде списка слов. Если команда состоит из слова «move» и направления — робот
должен сообщить, куда он двигается. Если команда — «stop», робот останавливается. Во всех остальных случаях робот сообщает, что
команда не распознана. Используйте оператор выбора match...case.
English     Русский Правила