0 votes
1 view
in Python by (31.7k points)

I notice that a pre-increment/decrement operator can be applied on a variable (like ++count). It compiles, but it does not actually change the value of the variable!

What is the behavior of the pre-increment/decrement operators (++/--) in Python?

Why does Python deviate from the behavior of these operators seen in C/C++?

2 Answers

0 votes
by (75.1k points)
edited by

When we try to do increment or decrement, we typically do that on an integer

Like as follows:

b++

But when we deal with Python, so we see that integers are immutable in Python. That means you can't change them. 

b = 5

a = 5

id(a) 

id(b) 

a is b

Here, a and b above are actually the same objects. So if you increment a, you would also increment b. That's not what you want. So you have to reassign it as follows:-

b = b + 1

Or 

b += 1

The above codes will reassign b to b+1. That is not an increment operator, because it does not increment b, it reassigns it.

So here, Python behaves differently, because Python is a high-level dynamic language, where increments don't make sense, and also are not as necessary as in C, where you use them every time you have a loop.

To know more about this you can have a look at the following video tutorial:-

0 votes
by (32.8k points)

++ is not an operator. It is two + operators. The + operator is the identity operator, that does nothing. The + and - unary operators only work on numbers, but I presume that you wouldn't expect a hypothetical ++ operator to work on strings.

++count

Parses as

+(+count)

Which translates to

count

You have to use the slightly longer += operator to do what you want to do:

count += 1

I assume the ++ and -- operators were left out for consistency and simplicity.

Hope this answer helps you!

...