KAHIBARO
Discord Login Register

4.2 Operators

Overview

In programming, operators are symbols or keywords that tell the computer to perform an operation on one or more values.

You combine values (also called operands) and operators to form expressions, and those expressions produce new values.

Example:

python
result = 2 + 3 * 4

Here:

In this chapter you will learn the main categories of operators that appear in almost every programming language, and how to use them correctly without unexpected results.


Arithmetic Operators

Arithmetic operators work with numbers to perform basic math.

Common arithmetic operators:

OperatorMeaningExampleResult
+Addition5 + 38
-Subtraction5 - 32
*Multiplication5 * 315
/Division6 / 32
%Modulo (remainder)7 % 31
**Exponentiation2 ** 38
//Integer division7 // 32

Important rule: In most programming languages, including Python, integer division and modulo are used to work with remainders, even-odd checks, and splitting values into chunks.

Addition and Subtraction

python
x = 10 + 5      # 15
y = x - 3       # 12
z = y + 1 - 2   # 11

You can also use + to concatenate strings:

python
greeting = "Hello, " + "world!"   # "Hello, world!"

Many languages do not allow string minus string, because subtraction for strings is not defined.

Multiplication

python
a = 4 * 3       # 12
b = 2 * 2 * 2   # 8

In Python you can also multiply strings by integers:

python
line = "-" * 10     # "----------"
ha = "ha" * 3       # "hahaha"

Division

In Python:

python
a = 7 / 2      # 3.5 (float division)
b = 7 // 2     # 3   (integer division, floor)
c = 7 % 2      # 1   (remainder)

In some other languages, 7 / 2 with integers might give 3. You always need to know how your language handles division.

Modulo (Remainder)

% gives the remainder after integer division:

python
7 % 3   # 1
10 % 2  # 0
11 % 2  # 1

Typical uses:

python
  if x % 2 == 0:
      print("even")
python
  index = n % 5   # result is always 0,1,2,3 or 4

Exponentiation

python
2 ** 3    # 8
3 ** 2    # 9
10 ** 0   # 1

Be careful with very large exponents. 2 ** 1000 is huge.


Comparison Operators

Comparison operators compare two values and return a boolean result:

Common comparison operators:

OperatorMeaningExampleResult
==equal to3 == 3True
!=not equal to3 != 4True
<less than2 < 5True
>greater than5 > 2True
<=less than or equal to3 <= 3True
>=greater than or equal to4 >= 5False
python
age = 18
is_adult = age >= 18        # True
same_age = age == 21        # False
not_ten = age != 10         # True

Comparing strings compares their lexicographic (dictionary-like) order:

python
"Alice" < "Bob"     # True
"cat" < "dog"       # True
"10" < "2"          # True (they are strings, "1" comes before "2")

For numbers, "10" < "2" would be 10 < 2 which is False. So always know the type you are comparing.

Important rule: Use == for comparison. Do not confuse it with = which is assignment.


Logical Operators

Logical operators combine boolean values.

Common logical operators:

OperatorMeaningExampleResult
andboth trueTrue and FalseFalse
orat least one trueTrue or FalseTrue
notnegationnot TrueFalse

Examples:

python
age = 20
has_id = True
can_enter = age >= 18 and has_id
# True and True -> True
is_child = age < 18 or not has_id
# False or False -> False

Logic table for and:

ABA and B
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Logic table for or:

ABA or B
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

not simply flips the value:

python
not True     # False
not False    # True

Common patterns:

python
is_logged_in = True
if not is_logged_in:
    print("Please log in")
temperature = 22
nice_weather = temperature > 18 and temperature < 30

Assignment Operators

Assignment operators store a value in a variable.

The basic one:

python
x = 5

There are also compound assignment operators, which update a variable using its current value.

OperatorExampleSame asMeaning
=x = 5assign
+=x += 3x = x + 3add and assign
-=x -= 2x = x - 2subtract and assign
*=x *= 4x = x * 4multiply and assign
/=x /= 2x = x / 2divide and assign
//=x //= 2x = x // 2integer divide and assign
%=x %= 3x = x % 3modulo and assign
**=x **= 2x = x ** 2exponent and assign

Example:

python
counter = 0
counter += 1   # 1
counter += 1   # 2
counter *= 2   # 4
counter -= 3   # 1

This pattern appears constantly in loops and accumulations.

Important rule: x += 1 updates x in place. It does not create a new variable. It is shorthand for x = x + 1.


Bitwise Operators (Basic Intuition)

Bitwise operators work at the binary bit level of integers. You do not need to master them as a beginner, but you should recognize the symbols.

Common bitwise operators:

OperatorNameExampleMeaning (binary)
&ANDa & b1 if both bits are 1
`\`OR`a \b`1 if at least one bit is 1
^XORa ^ b1 if bits are different
~NOT~aflips bits
<<left shifta << 1shift bits left, multiply by 2
>>right shifta >> 1shift bits right, divide by 2 (integer)

Very simple intuition example in Python:

python
a = 6        # binary 110
b = 3        # binary 011
a & b        # 2 (binary 010)
a | b        # 7 (binary 111)
a ^ b        # 5 (binary 101)
a << 1       # 12 (binary 1100)
a >> 1       # 3  (binary 11)

In backend development, bitwise operators appear in low level flags, permissions, and protocol work, but you will not use them as often as arithmetic and logical operators.


Membership and Identity Operators

These are very common when dealing with collections like lists, strings, or sets.

Membership: `in` and `not in`

Membership operators check if a value is part of a collection.

OperatorMeaningExampleResult
inelement is present"a" in "cat"True
not inelement is not present4 not in [1, 2, 3]True

Examples:

python
numbers = [1, 2, 3, 4]
3 in numbers        # True
5 in numbers        # False
5 not in numbers    # True
text = "backend"
"end" in text       # True
"front" in text     # False

Membership checks are essential in API code and data validation, such as:

python
allowed_roles = ["admin", "user", "moderator"]
if role not in allowed_roles:
    raise ValueError("Invalid role")

Identity: `is` and `is not`

Identity operators check if two variables refer to the same object in memory, not just if they have equal value.

OperatorMeaningExample
issame objecta is b
is notnot the same objecta is not b

You usually use is only with special singletons like None in Python.

python
value = None
if value is None:
    print("No value provided")
if value is not None:
    print("We have a value:", value)

Do not confuse:

python
a = [1, 2, 3]
b = [1, 2, 3]
a == b    # True (same content)
a is b    # False (different objects)

Operator Precedence

When an expression has many different operators, the language follows precedence rules to decide which part to evaluate first.

Simple math example:

python
result = 2 + 3 * 4

This is not (2 + 3) * 4 which would be 20. Instead:

  1. Multiplication first: 3 * 4 = 12
  2. Then addition: 2 + 12 = 14

So result is 14.

Partial precedence order (high to low) in Python:

PriorityOperatorsExample
Highest() parentheses(2 + 3) * 4
** exponent2 ** 3
*, /, //, %2 * 3, 7 % 2
+, -2 + 3
comparison (<, >, ==, etc.)a < b
notnot cond
andA and B
LowestorA or B

Important rule: When in doubt, use parentheses. They make the intention clear and avoid bugs.

Examples:

python
x = 10
y = 5
z = 2
a = x + y * z        # 10 + 5 * 2 = 20
b = (x + y) * z      # (10 + 5) * 2 = 30
cond = x > 5 and y < 10 or z == 0
# This is evaluated as:
# (x > 5 and y < 10) or (z == 0)

Use parentheses to make it explicit:

python
cond = (x > 5 and y < 10) or (z == 0)

Combining Operators in Expressions

Real code usually combines several operator types.

Example: Simple discount calculation

python
price = 120
is_member = True
has_discount = price > 100 and is_member
# True if the price is over 100 and user is a member
if has_discount:
    final_price = price * 0.9   # 10% off
else:
    final_price = price

Operators used:

Example: Validating an age input

python
age = 25
is_valid_age = age >= 0 and age <= 120
if not is_valid_age:
    print("Invalid age")

Better with chained comparison in Python:

python
is_valid_age = 0 <= age <= 120

This uses two comparison operators in a single expression.

Example: Checking membership and combining logic

python
allowed_roles = ["admin", "editor"]
user_role = "viewer"
is_logged_in = True
can_edit = is_logged_in and user_role in allowed_roles

Here we have:

Common Beginner Mistakes

Mistake 1: Confusing `=` with `==`

python
x = 5
if x = 10:      # Syntax error in many languages
    ...

Correct:

python
x = 5
if x == 10:
    ...

Mistake 2: Ignoring types

python
"10" + "5"   # "105" string concatenation
"10" - "5"   # error in many languages

If you need numeric operations, convert:

python
int("10") + int("5")   # 15

Mistake 3: Misunderstanding division

In some languages:

text
7 / 2  -> 3

In Python:

python
7 / 2   # 3.5
7 // 2  # 3

Always know which kind of division you are performing.

Mistake 4: Misplaced parentheses

python
result = 10 - 3 * 2   # 4

Someone might expect (10 - 3) * 2 which is 14. Add parentheses if that is what you want.


Practice Ideas

To really learn operators, try simple small exercises like:

  1. Even or odd checker
python
   n = 17
   is_even = (n % 2 == 0)
  1. Grade category
python
   score = 78
   passed = score >= 50
   high_score = score >= 90
  1. Access control
python
   role = "user"
   is_active = True
   can_delete = is_active and role == "admin"
  1. Cart total
python
   price = 50
   quantity = 3
   discount = 0.1   # 10%
   subtotal = price * quantity
   total = subtotal * (1 - discount)

As you continue with conditions and loops, you will see operators everywhere. They are the building blocks of all program logic.

Views: 8

Comments

Please login to add a comment.

Don't have an account? Register now!