Chapter 18: Comparison Operators
Part 1: What Are Comparison Operators?
Comparison operators, also known as relational operators, are used to compare two values. The result of a comparison is always a boolean value: either True or False (in Python; other languages might use true/false or 1/0).
This boolean result is the fuel for if statements, while loops, and every other form of logical control flow in your program.
|
0 1 2 3 4 5 6 7 8 |
result <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 keyword">print</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span> <span class="token comment"># Output: True</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token builtin">type</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># Output: <class 'bool'></span> |
Here, 5 > 3 is a comparison expression. It asks the computer, “Is 5 greater than 3?” The computer checks, and the answer is True. This True value is then stored in the variable result.
Part 2: Meet the Family: Your Comparison Toolbox
Let’s introduce each comparison operator. You’ll recognize most of them from mathematics, but there are a couple of important variations, especially when it comes to checking for equality.
| Operator | Name | Description | Example | Result |
|---|---|---|---|---|
== |
Equal to | True if the two operands have the same value. |
5 == 5 |
True |
!= |
Not equal to | True if the two operands do not have the same value. |
5 != 3 |
True |
> |
Greater than | True if the left operand is greater than the right. |
7 > 5 |
True |
< |
Less than | True if the left operand is less than the right. |
7 < 5 |
False |
>= |
Greater than or equal to | True if the left is greater than or equal to the right. |
5 >= 5 |
True |
<= |
Less than or equal to | True if the left is less than or equal to the right. |
3 <= 5 |
True |
Now, let’s explore each one in detail with examples.
1. Equal To (==)
This is one of the most important and also one of the most commonly mistaken operators for beginners. It has two equals signs. A single equals sign = is for assignment (putting a value into a variable). A double equals sign == is for comparison (asking if two values are the same).
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
a <span class="token operator">=</span> <span class="token number">10</span> b <span class="token operator">=</span> <span class="token number">10</span> c <span class="token operator">=</span> <span class="token number">5</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>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 comment"># Output: True (both are 10)</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>a<span class="token punctuation">}</span></span><span class="token string"> == </span><span class="token interpolation"><span class="token punctuation">{</span>c<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> c<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: False (10 is not equal to 5)</span> <span class="token comment"># It works with strings too</span> name1 <span class="token operator">=</span> <span class="token string">"Alice"</span> name2 <span class="token operator">=</span> <span class="token string">"Alice"</span> name3 <span class="token operator">=</span> <span class="token string">"Bob"</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>name1<span class="token punctuation">}</span></span><span class="token string">' == '</span><span class="token interpolation"><span class="token punctuation">{</span>name2<span class="token punctuation">}</span></span><span class="token string">' : </span><span class="token interpolation"><span class="token punctuation">{</span>name1 <span class="token operator">==</span> name2<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True</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>name1<span class="token punctuation">}</span></span><span class="token string">' == '</span><span class="token interpolation"><span class="token punctuation">{</span>name3<span class="token punctuation">}</span></span><span class="token string">' : </span><span class="token interpolation"><span class="token punctuation">{</span>name1 <span class="token operator">==</span> name3<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: False</span> |
2. Not Equal To (!=)
This is the opposite of ==. It asks, “Are these two values different?” It returns True if they are not the same.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
x <span class="token operator">=</span> <span class="token number">10</span> y <span class="token operator">=</span> <span class="token number">5</span> z <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"</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"># Output: True (10 is not equal to 5)</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>z<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> z<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: False (10 is equal to 10)</span> <span class="token comment"># With strings</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> <span class="token comment"># Output: True</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 comment"># Output: False</span> |
3. Greater Than (>) and Less Than (<)
These work exactly as you’d expect from math class. They compare numeric values.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
score <span class="token operator">=</span> <span class="token number">85</span> passing_score <span class="token operator">=</span> <span class="token number">60</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>score<span class="token punctuation">}</span></span><span class="token string"> > </span><span class="token interpolation"><span class="token punctuation">{</span>passing_score<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>score <span class="token operator">></span> passing_score<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True (85 > 60)</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>score<span class="token punctuation">}</span></span><span class="token string"> < </span><span class="token interpolation"><span class="token punctuation">{</span>passing_score<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>score <span class="token operator"><</span> passing_score<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: False (85 is not less than 60)</span> temperature <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">5</span> freezing <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-interpolation"><span class="token string">f"Temperature below freezing? </span><span class="token interpolation"><span class="token punctuation">{</span>temperature <span class="token operator"><</span> freezing<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True</span> <span class="token comment"># They also work with other numeric types</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"3.14 > 3 : </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token number">3.14</span> <span class="token operator">></span> <span class="token number">3</span><span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True</span> |
4. Greater Than or Equal To (>=) and Less Than or Equal To (<=)
These operators are inclusive. They are True if the relationship is strictly greater/less or if the values are equal.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
min_age <span class="token operator">=</span> <span class="token number">18</span> age1 <span class="token operator">=</span> <span class="token number">18</span> age2 <span class="token operator">=</span> <span class="token number">21</span> age3 <span class="token operator">=</span> <span class="token number">16</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>age1<span class="token punctuation">}</span></span><span class="token string"> >= </span><span class="token interpolation"><span class="token punctuation">{</span>min_age<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>age1 <span class="token operator">>=</span> min_age<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True (18 is equal to 18)</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>age2<span class="token punctuation">}</span></span><span class="token string"> >= </span><span class="token interpolation"><span class="token punctuation">{</span>min_age<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>age2 <span class="token operator">>=</span> min_age<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True (21 is greater than 18)</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>age3<span class="token punctuation">}</span></span><span class="token string"> >= </span><span class="token interpolation"><span class="token punctuation">{</span>min_age<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>age3 <span class="token operator">>=</span> min_age<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: False (16 is not greater than or equal to 18)</span> <span class="token comment"># Similarly for <=</span> speed <span class="token operator">=</span> <span class="token number">65</span> speed_limit <span class="token operator">=</span> <span class="token number">65</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>speed<span class="token punctuation">}</span></span><span class="token string"> <= </span><span class="token interpolation"><span class="token punctuation">{</span>speed_limit<span class="token punctuation">}</span></span><span class="token string"> : </span><span class="token interpolation"><span class="token punctuation">{</span>speed <span class="token operator"><=</span> speed_limit<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True (65 is equal to 65)</span> |
Part 3: Comparing Different Data Types
What happens when you try to compare, say, a number and a string? In Python, this will usually raise a TypeError because it doesn’t make sense to ask if a number is “greater than” a word.
|
0 1 2 3 4 5 6 7 8 |
<span class="token comment"># This will cause an error in Python</span> <span class="token comment"># result = 5 > "hello"</span> <span class="token comment"># TypeError: '>' not supported between instances of 'int' and 'str'</span> |
However, comparing strings with each other is perfectly valid. String comparison is done lexicographically, which is essentially alphabetical order, based on the Unicode (or ASCII) values of the characters.
|
0 1 2 3 4 5 6 7 8 9 |
<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> <span class="token comment"># Output: True ('a' comes before 'b')</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 comment"># Output: True (In Unicode, uppercase letters have lower values than lowercase)</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"'cat' == 'cat' :"</span><span class="token punctuation">,</span> <span class="token string">"cat"</span> <span class="token operator">==</span> <span class="token string">"cat"</span><span class="token punctuation">)</span> <span class="token comment"># Output: True</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"'hello' > 'world' :"</span><span class="token punctuation">,</span> <span class="token string">"hello"</span> <span class="token operator">></span> <span class="token string">"world"</span><span class="token punctuation">)</span> <span class="token comment"># Output: False ('h' < 'w')</span> |
Part 4: The Critical Distinction: = vs. ==
This is the single most common mistake new programmers make. Let’s hammer it home.
-
=(Single Equals): Is the assignment operator. It takes the value on the right and puts it into the variable on the left. It’s an action.0123456x <span class="token operator">=</span> <span class="token number">10</span> <span class="token comment"># "x becomes 10"</span> -
==(Double Equals): Is the comparison operator. It asks a question: “Is the value on the left equal to the value on the right?” It returnsTrueorFalse.0123456x <span class="token operator">==</span> <span class="token number">10</span> <span class="token comment"># "Is x equal to 10?" This would return True or False</span>
The Classic “Billion Dollar Mistake”
Imagine you want to check if a user’s input is the number 5. This is the wrong way:
|
0 1 2 3 4 5 6 7 8 9 10 |
user_input <span class="token operator">=</span> <span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Enter a number: "</span><span class="token punctuation">)</span> <span class="token comment"># Let's say the user types '5'</span> <span class="token comment"># WRONG! This assigns '5' to user_input, making the condition always True</span> <span class="token keyword">if</span> user_input <span class="token operator">=</span> <span class="token number">5</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"You entered 5"</span><span class="token punctuation">)</span> |
This code doesn’t work as expected. user_input = 5 is an assignment, not a comparison. It sets user_input to 5, and the result of an assignment expression in Python is the assigned value (5). Any non-zero number is considered True in a boolean context, so this if block will always run, regardless of what the user typed! This is a logic bug that can be very hard to spot.
The correct way is:
|
0 1 2 3 4 5 6 7 8 9 10 |
user_input <span class="token operator">=</span> <span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Enter a number: "</span><span class="token punctuation">)</span> <span class="token comment"># CORRECT! This compares user_input to the number 5</span> <span class="token keyword">if</span> user_input <span class="token operator">==</span> <span class="token string">"5"</span><span class="token punctuation">:</span> <span class="token comment"># Compare to a string, because input() returns a string</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"You entered 5"</span><span class="token punctuation">)</span> |
Remember: If you want to check if two things are the same, you must use ==.
Part 5: Chaining Comparisons
Python has a very elegant feature that many other languages don’t: you can chain comparison operators to check multiple relationships at once.
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
x <span class="token operator">=</span> <span class="token number">5</span> <span class="token comment"># Check if x is between 3 and 8 (inclusive)</span> is_between <span class="token operator">=</span> <span class="token number">3</span> <span class="token operator"><=</span> x <span class="token operator"><=</span> <span class="token number">8</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Is </span><span class="token interpolation"><span class="token punctuation">{</span>x<span class="token punctuation">}</span></span><span class="token string"> between 3 and 8? </span><span class="token interpolation"><span class="token punctuation">{</span>is_between<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: True</span> <span class="token comment"># In other languages, you'd have to write: (3 <= x) && (x <= 8)</span> y <span class="token operator">=</span> <span class="token number">10</span> is_outside_range <span class="token operator">=</span> <span class="token keyword">not</span> <span class="token punctuation">(</span><span class="token number">5</span> <span class="token operator"><</span> y <span class="token operator"><</span> <span class="token number">15</span><span class="token punctuation">)</span> <span class="token comment"># Using 'not' to invert</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Is </span><span class="token interpolation"><span class="token punctuation">{</span>y<span class="token punctuation">}</span></span><span class="token string"> outside the range 5-15? </span><span class="token interpolation"><span class="token punctuation">{</span>is_outside_range<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span> <span class="token comment"># Output: False (10 is inside)</span> |
This makes complex range checks incredibly readable.
Part 6: Practical, Real-World Examples
Example 1: Age Verification for a Game
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<span class="token comment"># Ask the user for their age</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> <span class="token comment"># Check if they are old enough to play</span> <span class="token keyword">if</span> age <span class="token operator">>=</span> <span class="token number">13</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"You are old enough to play this game!"</span><span class="token punctuation">)</span> <span class="token keyword">else</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Sorry, you must be at least 13 to play."</span><span class="token punctuation">)</span> <span class="token comment"># Check if they qualify for a senior discount</span> <span class="token keyword">if</span> age <span class="token operator">>=</span> <span class="token number">65</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"You also qualify for our senior discount!"</span><span class="token punctuation">)</span> |
Example 2: Temperature Alert System
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<span class="token comment"># Get the current temperature</span> temperature <span class="token operator">=</span> <span class="token builtin">float</span><span class="token punctuation">(</span><span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Enter the current temperature in °C: "</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># Set thresholds</span> freezing <span class="token operator">=</span> <span class="token number">0</span> hot_threshold <span class="token operator">=</span> <span class="token number">35</span> <span class="token comment"># Use comparisons to give appropriate warnings</span> <span class="token keyword">if</span> temperature <span class="token operator"><=</span> freezing<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"❄️ It's freezing! Wear warm clothes."</span><span class="token punctuation">)</span> <span class="token keyword">elif</span> temperature <span class="token operator">></span> freezing <span class="token keyword">and</span> temperature <span class="token operator"><</span> <span class="token number">20</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"🌤️ It's cool. A light jacket might be nice."</span><span class="token punctuation">)</span> <span class="token keyword">elif</span> temperature <span class="token operator">>=</span> <span class="token number">20</span> <span class="token keyword">and</span> temperature <span class="token operator"><=</span> hot_threshold<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"☀️ It's pleasant weather!"</span><span class="token punctuation">)</span> <span class="token keyword">else</span><span class="token punctuation">:</span> <span class="token comment"># temperature > hot_threshold</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"🔥 It's very hot! Stay hydrated and seek shade."</span><span class="token punctuation">)</span> |
Example 3: Login System (Simple)
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<span class="token comment"># Predefined correct credentials</span> correct_username <span class="token operator">=</span> <span class="token string">"admin"</span> correct_password <span class="token operator">=</span> <span class="token string">"secret123"</span> <span class="token comment"># Get user input</span> username <span class="token operator">=</span> <span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Enter username: "</span><span class="token punctuation">)</span> password <span class="token operator">=</span> <span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Enter password: "</span><span class="token punctuation">)</span> <span class="token comment"># Check if the credentials match (using == comparison)</span> <span class="token keyword">if</span> username <span class="token operator">==</span> correct_username <span class="token keyword">and</span> password <span class="token operator">==</span> correct_password<span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Login successful! Welcome, admin."</span><span class="token punctuation">)</span> <span class="token keyword">else</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Login failed. Incorrect username or password."</span><span class="token punctuation">)</span> |
Example 4: Game Logic – Checking for High Score
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<span class="token comment"># Current high score</span> high_score <span class="token operator">=</span> <span class="token number">1500</span> <span class="token comment"># Player's new score</span> player_score <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 score: "</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment"># Compare player's score with the high score</span> <span class="token keyword">if</span> player_score <span class="token operator">></span> high_score<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"🎉 New high score! Your score of </span><span class="token interpolation"><span class="token punctuation">{</span>player_score<span class="token punctuation">}</span></span><span class="token string"> beats the old record of </span><span class="token interpolation"><span class="token punctuation">{</span>high_score<span class="token punctuation">}</span></span><span class="token string">!"</span></span><span class="token punctuation">)</span> <span class="token comment"># In a real game, you'd update the high score here</span> high_score <span class="token operator">=</span> player_score <span class="token keyword">elif</span> player_score <span class="token operator">==</span> high_score<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"🏆 Amazing! You tied the high score of </span><span class="token interpolation"><span class="token punctuation">{</span>high_score<span class="token punctuation">}</span></span><span class="token string">!"</span></span><span class="token punctuation">)</span> <span class="token keyword">else</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"Your score is </span><span class="token interpolation"><span class="token punctuation">{</span>player_score<span class="token punctuation">}</span></span><span class="token string">. The high score is </span><span class="token interpolation"><span class="token punctuation">{</span>high_score<span class="token punctuation">}</span></span><span class="token string">. Keep trying!"</span></span><span class="token punctuation">)</span> |
Example 5: Checking for an Empty Input
|
0 1 2 3 4 5 6 7 8 9 10 11 12 |
user_input <span class="token operator">=</span> <span class="token builtin">input</span><span class="token punctuation">(</span><span class="token string">"Please enter something: "</span><span class="token punctuation">)</span> <span class="token comment"># Check if the input string is empty (length is 0)</span> <span class="token keyword">if</span> <span class="token builtin">len</span><span class="token punctuation">(</span>user_input<span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">:</span> <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"You didn't enter anything!"</span><span class="token punctuation">)</span> <span class="token keyword">else</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"You entered: '</span><span class="token interpolation"><span class="token punctuation">{</span>user_input<span class="token punctuation">}</span></span><span class="token string">'"</span></span><span class="token punctuation">)</span> |
Summary: The Comparison Operator Philosophy
-
Comparison operators are the decision-makers of your code. They compare values and return a boolean (
True/False). -
==(equal to) and!=(not equal to) check for equality. -
>(greater than),<(less than),>=(greater than or equal to), and<=(less than or equal to) check for relative order. -
The result of a comparison is always a boolean, which can be stored in a variable or used directly in
ifstatements and loops. -
Crucial Distinction:
=is for assignment (action),==is for comparison (question). Confusing them is a classic and often hard-to-spot bug. -
You can compare numbers, strings (lexicographically), and other types, but comparing incompatible types (like a number and a string) usually causes an error.
-
Python allows elegant chaining of comparisons like
3 <= x <= 8.
Mastering comparison operators is like gaining the power of judgment for your programs. They are the fundamental tool that allows your code to react intelligently to different data and situations. Without them, your program would be a straight line, unable to make choices. With them, it becomes a dynamic, responsive system.
