Skip to content

Python Not Equal Operator: Unlocking the Power of Comparison

As a programmer, comparison operators are an essential part of your arsenal. One such operator in Python is the not equal operator, which allows you to compare two values or objects to determine if they are different. In this essay, we will dive deep into the mysteries of the Python not equal operator, explore how it works in Python 2 and 3, understand its usage with custom objects, and learn about the differences between != and <>. Along the way, we will also discuss how to use f-strings with the not equal operator.

Want to quickly create Data Visualization from Python Pandas Dataframe with No code?

PyGWalker is a Python library for Exploratory Data Analysis with Visualization. PyGWalker (opens in a new tab) can simplify your Jupyter Notebook data analysis and data visualization workflow, by turning your pandas dataframe (and polars dataframe) into a tableau-alternative User Interface for visual exploration.

PyGWalker for Data visualization (opens in a new tab)

What is the Python not equal operator?

The not equal operator in Python is represented by the symbol !=. It compares two values or objects and returns True if they are not equal, and False otherwise. This operator is particularly useful in if statements and for loops to control the flow of your program based on the comparison of different values.

How does the not equal operator work in Python 2 and Python 3?

In both Python 2 and 3, the not equal operator behaves similarly. However, there are some subtle differences. In Python 2, you can use either != or the deprecated <> operator for not equal comparisons. In Python 3, the <> operator has been removed, and only the != operator is supported. Using the <> operator in Python 3 will result in a SyntaxError.

When comparing values of different data types in Python 2, the interpreter employs dynamic typing and tries to convert the values to a common data type. In Python 3, a strongly typed language, the interpreter will raise a TypeError if you attempt to compare incompatible data types.

Can we use the not equal operator with custom objects?

Yes, you can use the not equal operator with custom objects in Python. In object-oriented programming, classes define custom object types. To use the not equal operator with custom objects, you need to override the __ne__() method in your class definition. This method is responsible for determining whether two instances of the custom object are not equal. Here's an example:

class MyClass:
    def __init__(self, value):
        self.value = value
    def __ne__(self, other):
        return self.value != other.value
obj1 = MyClass(42)
obj2 = MyClass(42)
print(obj1 != obj2)  # Output: False

What is the difference between != and <> in Python?

As mentioned earlier, != and <> are both not equal operators in Python 2, with <> being deprecated. While both operators function similarly, <> is not supported in Python 3, and using it will result in a SyntaxError. It is recommended to use the != operator for not equal comparisons in both Python 2 and 3 for consistency and compatibility.

Can we use f-strings with the not equal operator in Python?

F-strings, introduced in Python 3.6, are a powerful way to embed expressions inside string literals. You can use f-strings with the not equal operator to create dynamic strings based on the result of a not equal comparison. Here's an example:

num1 = 42
num2 = 24
result = f"{num1} is not equal to {num2}: {num1 != num2}"
print(result)  # Output: 42 is not equal to 24: True

In this example, we use an f-string to display the result of the not equal comparison between num1 and num2. The f-string evaluates the expression within the curly braces, {num1 != num2}, and inserts the result (True in this case) into the string.

Python Not Equal Operator Examples

Now that we have a solid understanding of the Python not equal operator, let's explore some examples with various data types:

With Strings

string1 = "apple"
string2 = "banana"
print(string1 != string2)  # Output: True

With Integers

num1 = 5
num2 = 7
print(num1 != num2)  # Output: True

With Custom Objects

class MyClass:
    def __init__(self, value):
        self.value = value
    def __ne__(self, other):
        return self.value != other.value
obj1 = MyClass("apple")
obj2 = MyClass("banana")
print(obj1 != obj2)  # Output: True

In an If Statement

num = 42
if num != 0:
    print("Number is not zero.")  # Output: Number is not zero.

With None

value = None
print(value != 42)  # Output: True

Python Not Equal Operator vs is not

Both the not equal operator and is not can be used for comparisons, but they serve different purposes. The not equal operator (!=) checks if two values are different, whereas is not checks if two objects are different instances, even if their values are the same. For example:

num1 = 42
num2 = 42
print(num1 != num2)  # Output: False
print(num1 is not num2)  # Output: False

In this case, both != and is not return False because the values are equal, and the variables reference the same integer object.


The Python not equal operator is a versatile and powerful tool for comparing values and controlling the flow of your programs. Understanding its usage with different data types, its differences between Python 2 and 3, and how to use it with custom objects and f-strings will make you a more proficient Python developer. Keep exploring and experimenting with the not equal operator, and don't forget to check out our other Python tutorials to enhance your skills!


  1. What does != mean in Python? In Python, != is the inequality operator and is used to check if two values are not equal. It returns True if the values are not equal and False otherwise.

  2. What is == and != in Python? In Python, == is the equality operator and is used to check if two values are equal. On the other hand, != is the inequality operator and is used to check if two values are not equal.

  3. Can you use in Python? No, the symbol is not directly supported in Python. Instead, you can use the != operator to check for inequality between two values.

  4. What is the difference between != and is not in Python? Both != and is not are used to check for inequality in Python. However, there is a subtle difference between them. The != operator compares the values of the operands, while the is not operator compares the object identities. In most cases, you would use != for comparing values, but is not can be used to compare object identities, especially when dealing with mutable objects like lists or dictionaries.