Chapter 15: Operators
Part 1: What Are Operators?
An operator is a symbol that represents a specific action or operation to be performed on one or more values, which we call operands.
-
Operand: The values or variables that the operator acts upon. (e.g., in
5 + 3,5and3are operands). -
Operator: The symbol that defines the action (e.g.,
+is the operator).
The combination of operands and operators forms an expression, which evaluates to a single value.
|
0 1 2 3 4 5 6 |
result <span class="token operator">=</span> <span class="token number">10</span> <span class="token operator">+</span> <span class="token number">5</span> <span class="token operator">-</span> <span class="token number">3</span> <span class="token comment"># Here, 10, 5, and 3 are operands. + and - are operators. The whole line is an expression.</span> |
Part 2: The Main Families of Operators
We can group operators into several key families based on what they do. Let’s explore each one with examples in Python.
Family 1: Arithmetic Operators – The Mathematicians
These are the operators you’re most familiar with from math class. They perform basic mathematical calculations on numeric operands.
| Operator | Name | Description | Example | Result |
|---|---|---|---|---|
+ |
Addition | Adds two operands | 5 + 3 |
8 |
- |
Subtraction | Subtracts the right operand from the left | 10 - 4 |
6 |
* |
Multiplication | Multiplies two operands | 6 * 7 |
42 |
/ |
Division | Divides the left operand by the right (always returns a float) | 15 / 4 |
3.75 |
// |
Floor Division | Divides and returns the largest whole number (integer) less than or equal to the result | 15 // 4 |
3 |
% |
Modulo (Remainder) | Divides and returns the remainder | 15 % 4 |
3 |
** |
Exponentiation | Raises the left operand to the power of the right | 2 ** 3 |
8 |
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
a <span class="token operator">=</span> <span class="token number">10</span> b <span class="token operator">=</span> <span class="token number">3</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Addition: </span><span class="token interpolation"><span class="token punctuation">{</span>a<span class="token punctuation">}</span></span><span class="token string"> + </span><span class="token interpolation"><span class="token punctuation">{</span>b<span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">+</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Subtraction: </span><span class="token interpolation"><span class="token punctuation">{</span>a<span class="token punctuation">}</span></span><span class="token string"> - </span><span class="token interpolation"><span class="token punctuation">{</span>b<span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">-</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Multiplication: </span><span class="token interpolation"><span class="token punctuation">{</span>a<span class="token punctuation">}</span></span><span class="token string"> * </span><span class="token interpolation"><span class="token punctuation">{</span>b<span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">*</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Division: </span><span class="token interpolation"><span class="token punctuation">{</span>a<span class="token punctuation">}</span></span><span class="token string"> / </span><span class="token interpolation"><span class="token punctuation">{</span>b<span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">/</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Floor Division: </span><span class="token interpolation"><span class="token punctuation">{</span>a<span class="token punctuation">}</span></span><span class="token string"> // </span><span class="token interpolation"><span class="token punctuation">{</span>b<span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">//</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Modulo: </span><span class="token interpolation"><span class="token punctuation">{</span>a<span class="token punctuation">}</span></span><span class="token string"> % </span><span class="token interpolation"><span class="token punctuation">{</span>b<span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">%</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Exponentiation: </span><span class="token interpolation"><span class="token punctuation">{</span>a<span class="token punctuation">}</span></span><span class="token string"> ** </span><span class="token interpolation"><span class="token punctuation">{</span>b<span class="token punctuation">}</span></span><span class="token string"> = </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">**</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> |
Instructor’s Note: Pay special attention to // and %. They are incredibly useful. Modulo (%) is perfect for checking if a number is even (number % 2 == 0), cycling through a range, or many other tasks.
Family 2: Assignment Operators – The Store Keepers
These operators are used to assign values to variables. The most basic is the = sign, but it’s often combined with arithmetic operators to create shortcuts.
| Operator | Name | Description | Example | Equivalent To |
|---|---|---|---|---|
= |
Assignment | Assigns the value on the right to the variable on the left | x = 5 |
x = 5 |
+= |
Add and Assign | Adds the right operand to the left and assigns the result to the left | x += 3 |
x = x + 3 |
-= |
Subtract and Assign | Subtracts the right operand from the left and assigns the result | x -= 4 |
x = x - 4 |
*= |
Multiply and Assign | Multiplies the left operand by the right and assigns the result | x *= 2 |
x = x * 2 |
/= |
Divide and Assign | Divides the left operand by the right and assigns the result | x /= 3 |
x = x / 3 |
//= |
Floor Divide and Assign | Performs floor division and assigns the result | x //= 2 |
x = x // 2 |
%= |
Modulo and Assign | Takes the modulo and assigns the result | x %= 3 |
x = x % 3 |
**= |
Exponentiate and Assign | Raises the left operand to the power of the right and assigns the result | x **= 2 |
x = x ** 2 |
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
score <span class="token operator">=</span> <span class="token number">10</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Initial score: </span><span class="token interpolation"><span class="token punctuation">{</span>score<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> score <span class="token operator">+=</span> <span class="token number">5</span> <span class="token comment"># score = score + 5</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"After score += 5: </span><span class="token interpolation"><span class="token punctuation">{</span>score<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> score <span class="token operator">*=</span> <span class="token number">2</span> <span class="token comment"># score = score * 2</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"After score *= 2: </span><span class="token interpolation"><span class="token punctuation">{</span>score<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> score <span class="token operator">-=</span> <span class="token number">3</span> <span class="token comment"># score = score - 3</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"After score -= 3: </span><span class="token interpolation"><span class="token punctuation">{</span>score<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> |
Family 3: Comparison Operators – The Judges
These operators compare two values and always return a boolean result: True or False. They are the foundation of decision-making in programs.
| Operator | Name | Description | Example | Result |
|---|---|---|---|---|
== |
Equal to | True if operands are equal |
5 == 5 |
True |
!= |
Not equal to | True if operands are not equal |
5 != 3 |
True |
> |
Greater than | True if left is greater than right |
7 > 5 |
True |
< |
Less than | True if left is less than right |
7 < 5 |
False |
>= |
Greater than or equal to | True if left is greater than or equal to right |
5 >= 5 |
True |
<= |
Less than or equal to | True if left is less than or equal to right |
3 <= 5 |
True |
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
x <span class="token operator">=</span> <span class="token number">10</span> y <span class="token operator">=</span> <span class="token number">20</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string"> == </span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>x <span class="token operator">==</span> y<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string"> != </span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>x <span class="token operator">!=</span> y<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string"> > </span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>x <span class="token operator">></span> y<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string"> < </span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>x <span class="token operator"><</span> y<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string"> >= </span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>x <span class="token operator">>=</span> y<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string"> <= </span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>x <span class="token operator"><=</span> y<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># You can also compare strings (lexicographically/alphabetically)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"'apple' == 'apple':"</span><span class="token punctuation">,</span> <span class="token string">"apple"</span> <span class="token operator">==</span> <span class="token string">"apple"</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"'apple' < 'banana':"</span><span class="token punctuation">,</span> <span class="token string">"apple"</span> <span class="token operator"><</span> <span class="token string">"banana"</span><span class="token punctuation">)</span> |
Family 4: Logical Operators – The Decision Makers
These operators combine or invert boolean values. They allow you to build complex conditions from simpler ones.
| Operator | Name | Description | Example | Result |
|---|---|---|---|---|
and |
Logical AND | True if both operands are True |
(5 > 3) and (10 < 20) |
True |
or |
Logical OR | True if at least one operand is True |
(5 > 3) or (10 > 20) |
True |
not |
Logical NOT | Inverts the boolean value: True becomes False and vice versa |
not (5 > 3) |
False |
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
is_sunny <span class="token operator">=</span> <span class="token boolean">True</span> is_warm <span class="token operator">=</span> <span class="token boolean">True</span> is_weekend <span class="token operator">=</span> <span class="token boolean">False</span> <span class="token comment"># AND: Both conditions must be True</span> <span class="token keyword">if</span> is_sunny <span class="token keyword">and</span> is_warm<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"It's a perfect day for a walk!"</span><span class="token punctuation">)</span> <span class="token comment"># OR: At least one condition must be True</span> <span class="token keyword">if</span> is_sunny <span class="token keyword">or</span> is_warm<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"At least one of the conditions is good."</span><span class="token punctuation">)</span> <span class="token comment"># NOT: Inverts the condition</span> <span class="token keyword">if</span> <span class="token keyword">not</span> is_weekend<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"It's a weekday. Time to work!"</span><span class="token punctuation">)</span> <span class="token comment"># Combining them</span> can_go_to_beach <span class="token operator">=</span> <span class="token punctuation">(</span>is_sunny <span class="token keyword">and</span> is_warm<span class="token punctuation">)</span> <span class="token keyword">and</span> <span class="token keyword">not</span> is_weekend <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Can go to the beach? </span><span class="token interpolation"><span class="token punctuation">{</span>can_go_to_beach<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> |
Family 5: Identity Operators – The Twin Finders
These operators are special to Python. They don’t compare if two variables have the same value (use == for that). They compare if two variables refer to the exact same object in memory.
| Operator | Name | Description | Example |
|---|---|---|---|
is |
Identity | True if both operands refer to the same object |
x is y |
is not |
Negated Identity | True if they refer to different objects |
x is not y |
This is subtle but very important. Two lists can have the exact same contents (== would be True), but if they were created separately, they are different objects in memory (is would be False).
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
a <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span> b <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span> c <span class="token operator">=</span> a <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"a == b: </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">==</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># True (they have the same value)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"a is b: </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token keyword">is</span> b<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># False (they are different objects in memory)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"a is c: </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token keyword">is</span> c<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># True (c is just another name for the same object as a)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"a == c: </span><span class="token interpolation"><span class="token punctuation">{</span>a <span class="token operator">==</span> c<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># True (they have the same value)</span> |
When to use is: Primarily for comparing with the single value None.
|
0 1 2 3 4 5 6 7 8 |
result <span class="token operator">=</span> <span class="token boolean">None</span> <span class="token keyword">if</span> result <span class="token keyword">is</span> <span class="token boolean">None</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"No result yet."</span><span class="token punctuation">)</span> |
Family 6: Membership Operators – The Search Party
These operators test whether a value exists within a sequence, like a string, list, or tuple.
| Operator | Name | Description | Example | Result |
|---|---|---|---|---|
in |
Membership | True if the value is found in the sequence |
'a' in 'apple' |
True |
not in |
Negated Membership | True if the value is not found |
'z' not in 'apple' |
True |
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
fruits <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"apple"</span><span class="token punctuation">,</span> <span class="token string">"banana"</span><span class="token punctuation">,</span> <span class="token string">"orange"</span><span class="token punctuation">]</span> <span class="token keyword">if</span> <span class="token string">"banana"</span> <span class="token keyword">in</span> fruits<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"We have bananas!"</span><span class="token punctuation">)</span> <span class="token keyword">if</span> <span class="token string">"grape"</span> <span class="token keyword">not</span> <span class="token keyword">in</span> fruits<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"No grapes here."</span><span class="token punctuation">)</span> text <span class="token operator">=</span> <span class="token string">"Hello, World!"</span> <span class="token keyword">if</span> <span class="token string">"World"</span> <span class="token keyword">in</span> text<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Found 'World' in the text."</span><span class="token punctuation">)</span> |
Part 3: Operator Precedence (The Order of Operations)
Just like in mathematics, operators have a defined precedence that determines the order in which they are evaluated in a complex expression. You probably remember “Please Excuse My Dear Aunt Sally” (Parentheses, Exponents, Multiplication/Division, Addition/Subtraction). Programming is similar, but with more operators.
The general rule of thumb: When in doubt, use parentheses () to make your intention clear to both the computer and anyone reading your code.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<span class="token comment"># Without parentheses, multiplication happens before addition</span> result1 <span class="token operator">=</span> <span class="token number">5</span> <span class="token operator">+</span> <span class="token number">3</span> <span class="token operator">*</span> <span class="token number">2</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"5 + 3 * 2 = </span><span class="token interpolation"><span class="token punctuation">{</span>result1<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: 11 (3*2=6, 5+6=11)</span> <span class="token comment"># With parentheses, the addition happens first</span> result2 <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">5</span> <span class="token operator">+</span> <span class="token number">3</span><span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token number">2</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"(5 + 3) * 2 = </span><span class="token interpolation"><span class="token punctuation">{</span>result2<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: 16 (5+3=8, 8*2=16)</span> <span class="token comment"># Logical operators also have precedence (not > and > or)</span> a <span class="token operator">=</span> <span class="token boolean">True</span> b <span class="token operator">=</span> <span class="token boolean">False</span> c <span class="token operator">=</span> <span class="token boolean">True</span> <span class="token comment"># This is evaluated as: a or (b and c) because 'and' has higher precedence than 'or'</span> result3 <span class="token operator">=</span> a <span class="token keyword">or</span> b <span class="token keyword">and</span> c <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"True or False and True = </span><span class="token interpolation"><span class="token punctuation">{</span>result3<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True (b and c is False, True or False is True)</span> <span class="token comment"># Parentheses make it clear if you want a different order</span> result4 <span class="token operator">=</span> <span class="token punctuation">(</span>a <span class="token keyword">or</span> b<span class="token punctuation">)</span> <span class="token keyword">and</span> c <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"(True or False) and True = </span><span class="token interpolation"><span class="token punctuation">{</span>result4<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True</span> |
Part 4: Putting It All Together – A Practical Example
Let’s build a small program that checks if a user is eligible for a special discount. This combines assignment, arithmetic, comparison, and logical operators.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<span class="token comment"># Get user input</span> age <span class="token operator">=</span> <span class="token builtin">int</span><span class="token punctuation">(</span><span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Enter your age: "</span><span class="token punctuation">)</span><span class="token punctuation">)</span> is_student_input <span class="token operator">=</span> <span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Are you a student? (yes/no): "</span><span class="token punctuation">)</span> <span class="token comment"># Convert the student input to a boolean</span> is_student <span class="token operator">=</span> is_student_input<span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token string">"yes"</span> <span class="token comment"># Program logic using comparison and logical operators</span> <span class="token keyword">if</span> age <span class="token operator">>=</span> <span class="token number">65</span> <span class="token keyword">or</span> <span class="token punctuation">(</span>age <span class="token operator">>=</span> <span class="token number">18</span> <span class="token keyword">and</span> age <span class="token operator"><=</span> <span class="token number">25</span> <span class="token keyword">and</span> is_student<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token comment"># Using arithmetic and assignment operators to calculate discount</span> discount <span class="token operator">=</span> <span class="token number">20</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Congratulations! You are eligible for a </span><span class="token interpolation"><span class="token punctuation">{</span>discount<span class="token punctuation">}</span></span><span class="token string">% discount."</span></span><span class="token punctuation">)</span> <span class="token keyword">else</span><span class="token punctuation">:</span> discount <span class="token operator">=</span> <span class="token number">0</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"You are not eligible for the discount."</span><span class="token punctuation">)</span> <span class="token comment"># Simulate a purchase</span> item_price <span class="token operator">=</span> <span class="token number">50</span> total_price <span class="token operator">=</span> item_price <span class="token operator">-</span> <span class="token punctuation">(</span>item_price <span class="token operator">*</span> discount <span class="token operator">/</span> <span class="token number">100</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Original price: $</span><span class="token interpolation"><span class="token punctuation">{</span>item_price<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Final price after discount: $</span><span class="token interpolation"><span class="token punctuation">{</span>total_price<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> |
This example shows how operators are not just isolated symbols but the glue that holds the logic of our programs together.
Summary: The Operator Philosophy
-
Operators are the action symbols of programming. They perform operations on data.
-
Arithmetic Operators (
+,-,*,/,//,%,**) do math. -
Assignment Operators (
=,+=,-=, etc.) store values. -
Comparison Operators (
==,!=,>,<, etc.) create logic by producingTrue/False. -
Logical Operators (
and,or,not) combine these boolean values for complex decisions. -
Identity Operators (
is,is not) check if two things are the exact same object. -
Membership Operators (
in,not in) check for existence in a sequence. -
Operator Precedence determines the order of evaluation. Use parentheses
()to be clear and safe.
Mastering operators is like learning the verbs of a language. Without them, you can have all the nouns (data) you want, but you can’t make a sentence (a program). Practice using them in different combinations, and they will soon become second nature.
