I am quite experienced with Python, but recently, when I was looking at the solutions for the codility sample tests I encountered the operators -=
, +=
, ^=
and I am unable to figure out what they do. Perhaps could anyone explain the context in which they are used?
-= Subtraction Assignment Subtracts a value from the variable and assigns the result to that variable.
+= adds another value with the variable's value and assigns the new value to the variable. -= , *= , /= does similar for subtraction, multiplication and division.
This operator is called the addition assignment operator. This tutorial discussed, with reference to an example, the basics of Python operators and how to use the += assignment operator. Now you're equipped with the knowledge you need to use the =+ operator like a professional Python developer!
The % operator is mostly to find the modulus of two integers. a % b returns the remainder after dividing a by b . Unlike the modulus operators in some other programming languages (such as C), in Python a modulus it will have the same sign as b , rather than the same sign as a .
As almost any modern language, Python has assignment operators so they can use them every time you want to assign a value to a variable after doing some arithmetic or logical operation, both (assignment and operation) are expressed in a compact way in one statement...
Table from Tutorials Point:
Operator Description Example = Assigns values from right side operands to left side operand c = a + b assigns value of a + b into c += Add AND It adds right operand to the left operand and assign the result to left operand c += a is equivalent to c = c + a -= Subtract AND It subtracts right operand from the left operand and assign the result to left operand c -= a is equivalent to c = c - a *= Multiply AND It multiplies right operand with the left operand and assign the result to left operand c *= a is equivalent to c = c * a /= Divide AND It divides left operand with the right operand and assign the result to left operand c /= a is equivalent to c = c / a %= Modulus AND It takes modulus using two operands and assign the result to left operand c %= a is equivalent to c = c % a **= Exponent AND Performs exponential (power) calculation on operators and assign value to the left operand c **= a is equivalent to c = c ** a //= Floor Division It performs floor division on operators and assign value to the left operand c //= a is equivalent to c = c // a
When you compute X = X + Y
you are actually returning the sum of X
and Y
into a new variable, which, in your example, overwrites the previous value of X
. When you use an assignment operator in the form of X += 1
, the value 1
is directly summed on the current value of X
, without returning the result in a new variable. Take a look at the code below:
>>> V = np.arange(10) >>> view = V[3:] # view is just a subspace (reference) of the V array >>> print(V);print(view) [0 1 2 3 4 5 6 7 8 9] [3 4 5 6 7 8 9] >>> view = view + 3 # add view to a constant in a new variable >>> print(V);print(view) [0 1 2 3 4 5 6 7 8 9] [ 6 7 8 9 10 11 12] >>> view = V[3:] >>> view += 3 # here you actually modify the value of V >>> print(V);print(view) [ 0 1 2 6 7 8 9 10 11 12] [ 6 7 8 9 10 11 12]
You can also look for the documentation of numpy.ndarray.base
to check if an array is actually a reference of another array.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With