← Все вопросы

Что значит a += 1 в Python и есть ли тут ++ как в C?

Задан 14 месяцев назад735 просмотров3 ответа
17

Видел в чужом коде a += 1, s += '!'. Это то же самое, что a = a + 1? И почему не работает a++, ведь в C/Java так пишут?

3 ответа

26

a += 1 — это сокращение для a = a + 1, такие штуки называются составными операторами присваивания (есть -=, *=, /=, //=, %=, **= и т.д.).

А вот ++ и -- в Python нет вообще. a++ либо синтаксическая ошибка, либо (как ++a) трактуется как двойной унарный плюс и просто возвращает то же число, ничего не увеличивая. Так что для инкремента всегда пишут a += 1.

Аслан Меремуков Ага, +a +a — это просто плюс к плюсу, по факту ноль смысла · 14 месяцев назад
Иван Белов Удобно, меньше шансов опечататься как в сишных циклах · 14 месяцев назад
6

Нет.

Данил Макаров В смысле — `++` нет, а `+=` это и есть инкремент · 14 месяцев назад
1

Можно вообще a = a + 1 писать всегда, += это для ленивых 😄 для чисел разницы ноль.

Сэм Райдер Для списков разница есть: += это extend на месте, а = создаёт новый объект · 14 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект