- Free Python 3 Course
- Control Flow
- Exception Handling
- Python Programs
- Python Projects
- Python Interview Questions
- Python Database
- Data Science With Python
- Machine Learning with Python
- Write an Interview Experience
- Share Your Campus Experience
- Python – Star or Asterisk operator ( * )
- Assignment Operators in Python
- Python 3 – Logical Operators
- Python Bitwise Operators
- Modulo operator (%) in Python
- How To Do Math in Python 3 with Operators?
- Difference between “__eq__” VS “is” VS “==” in Python
- Relational Operators in Python
- Understanding Boolean Logic in Python 3
- Concatenate two strings using Operator Overloading in Python
- New ‘=’ Operator in Python3.8 f-string
- Python Operators
- Operator Overloading in Python
- Python Object Comparison : “is” vs “==”
- Python Arithmetic Operators
- Python | a += b is not always a = a + b
- Precedence and Associativity of Operators in Python
- Difference between != and is not operator in Python
- Python | Operator.countOf
- A += B Assignment Riddle in Python
- Adding new column to existing DataFrame in Pandas
- Python map() function
- Read JSON file using Python
- How to get column names in Pandas dataframe
- Taking input in Python
- Read a file line by line in Python
- Python Dictionary
- Iterate over a list in Python
- Enumerate() in Python
- Reading and Writing to text files in Python

Python Logical Operators with Examples
Operators are used to perform operations on values and variables. These are the special symbols that carry out arithmetic and logical computations. The value the operator operates on is known as Operand .
Table of Content Logical operators Logical AND operator Logical OR operator Logical NOT operator Order of evaluation of logical operators
Logical operators
In Python, Logical operators are used on conditional statements (either True or False). They perform Logical AND , Logical OR and Logical NOT operations.
The truth table for all combinations of values of X and Y.
Truth Table
Logical AND operator
Example #2:
Note: If the first expression evaluated to be false while using and operator, then the further expressions are not evaluated.
Logical OR operator
Example #2:
Note: If the first expression evaluated to be True while using or operator, then the further expressions are not evaluated.
Logical not operator
Order of evaluation of logical operators.
In the case of multiple operators, Python always evaluates the expression from left to right. This can be verified by the below example. Example:
Please Login to comment...
Improve your coding skills with practice.
Python Tutorial
File handling, python modules, python numpy, python pandas, python matplotlib, python scipy, machine learning, python mysql, python mongodb, python reference, module reference, python how to, python examples, python operators.
Operators are used to perform operations on variables and values.
In the example below, we use the + operator to add together two values:
Python divides the operators in the following groups:
- Arithmetic operators
- Assignment operators
- Comparison operators
- Logical operators
- Identity operators
- Membership operators
- Bitwise operators
Python Arithmetic Operators
Arithmetic operators are used with numeric values to perform common mathematical operations:
Python Assignment Operators
Assignment operators are used to assign values to variables:
Advertisement
Python Comparison Operators
Comparison operators are used to compare two values:
Python Logical Operators
Logical operators are used to combine conditional statements:
Python Identity Operators
Identity operators are used to compare the objects, not if they are equal, but if they are actually the same object, with the same memory location:
Python Membership Operators
Membership operators are used to test if a sequence is presented in an object:
Python Bitwise Operators
Bitwise operators are used to compare (binary) numbers:
Operator Precedence
Operator precedence describes the order in which operations are performed.
Parentheses has the highest precedence, meaning that expressions inside parentheses must be evaluated first:
Multiplication * has higher precedence than addition + , and therefor multiplications are evaluated before additions:
The precedence order is described in the table below, starting with the highest precedence at the top:
If two operators have the same precedence, the expression is evaluated from left to right.
Addition + and subtraction - has the same precedence, and therefor we evaluate the expression from left to right:
Test Yourself With Exercises
Multiply 10 with 5 , and print the result.
Start the Exercise

COLOR PICKER

Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top references, top examples, get certified.

- Hello World
- Console Operations
- Conditional Statements
- Loop Statements
- Builtin Functions
- Type Conversion
Collections
- Classes and Objects
- File Operations
- Global Variables
- Regular Expressions
- Multi-threading
- phonenumbers
- Online Python Compiler
- Breadcrumbs
- ► Python Programming
- ► ► Conditional Statements
- ► ► ► How to use AND Operator in Python IF Statement?
- Python Datatypes
- Python - Conditional Statments
- Python - If
- Python - If else
- Python - Elif
- Python - If AND
- Python - If OR
- Python - If NOT
- Python - Ternary Operator
- Python Loops
How to use AND Operator in Python IF Statement?
- If Statement with AND Operator
- Python If-Else Statement with AND Operator
- Python elif Statement with AND Operator
Python IF AND
You can combine multiple conditions into a single expression in Python conditional statements like Python if, if-else and elif statements. This avoids writing multiple nested if statements unnecessarily.
In the following examples, we will see how we can use Python AND logical operator to form a compound logical expression.
1. If Statement with AND Operator
In the following example, we will learn how to use AND logical operator, in Python If statement, to join two boolean conditions to form a compound expression.
To demonstrate the advantage of and operator , we will first write a nested if, and then a simple if statement where in this simple if statement realizes the same functionality as that of nested if.
Python Program
Here, our use case is that, we have to print a message when a equals 5 and b is greater than 0 . Without using and operator, we can only write a nested if statement, to program out functionality. When we used logical and operator, we could reduce the number of if statements to one.
2. Python If-Else Statement with AND Operator
In the following example, we will use and operator to combine two basic conditional expressions in boolean expression of Python If-Else statement.
3. Python elif Statement with AND Operator
In the following example, we will use and operator to combine two basic conditional expressions in boolean expression of Python elif statement.
In this tutorial of Python Examples , we learned how to use Python and logical operator with Python conditional statement: if, if-else and elif with well detailed examples.
Related Tutorials
- Python »
- 3.11.5 Documentation »
- The Python Standard Library »
- Functional Programming Modules »
- operator — Standard operators as functions
- Theme Auto Light Dark |
operator — Standard operators as functions ¶
Source code: Lib/operator.py
The operator module exports a set of efficient functions corresponding to the intrinsic operators of Python. For example, operator.add(x, y) is equivalent to the expression x+y . Many function names are those used for special methods, without the double underscores. For backward compatibility, many of these have a variant with the double underscores kept. The variants without the double underscores are preferred for clarity.
The functions fall into categories that perform object comparisons, logical operations, mathematical operations and sequence operations.
The object comparison functions are useful for all objects, and are named after the rich comparison operators they support:
Perform “rich comparisons” between a and b . Specifically, lt(a, b) is equivalent to a < b , le(a, b) is equivalent to a <= b , eq(a, b) is equivalent to a == b , ne(a, b) is equivalent to a != b , gt(a, b) is equivalent to a > b and ge(a, b) is equivalent to a >= b . Note that these functions can return any value, which may or may not be interpretable as a Boolean value. See Comparisons for more information about rich comparisons.
The logical operations are also generally applicable to all objects, and support truth tests, identity tests, and boolean operations:
Return the outcome of not obj . (Note that there is no __not__() method for object instances; only the interpreter core defines this operation. The result is affected by the __bool__() and __len__() methods.)
Return True if obj is true, and False otherwise. This is equivalent to using the bool constructor.
Return a is b . Tests object identity.
Return a is not b . Tests object identity.
The mathematical and bitwise operations are the most numerous:
Return the absolute value of obj .
Return a + b , for a and b numbers.
Return the bitwise and of a and b .
Return a // b .
Return a converted to an integer. Equivalent to a.__index__() .
Changed in version 3.10: The result always has exact type int . Previously, the result could have been an instance of a subclass of int .
Return the bitwise inverse of the number obj . This is equivalent to ~obj .
Return a shifted left by b .
Return a % b .
Return a * b , for a and b numbers.
Return a @ b .
New in version 3.5.
Return obj negated ( -obj ).
Return the bitwise or of a and b .
Return obj positive ( +obj ).
Return a ** b , for a and b numbers.
Return a shifted right by b .
Return a - b .
Return a / b where 2/3 is .66 rather than 0. This is also known as “true” division.
Return the bitwise exclusive or of a and b .
Operations which work with sequences (some of them with mappings too) include:
Return a + b for a and b sequences.
Return the outcome of the test b in a . Note the reversed operands.
Return the number of occurrences of b in a .
Remove the value of a at index b .
Return the value of a at index b .
Return the index of the first of occurrence of b in a .
Set the value of a at index b to c .
Return an estimated length for the object obj . First try to return its actual length, then an estimate using object.__length_hint__() , and finally return the default value.
New in version 3.4.
The following operation works with callables:
Return obj(*args, **kwargs) .
New in version 3.11.
The operator module also defines tools for generalized attribute and item lookups. These are useful for making fast field extractors as arguments for map() , sorted() , itertools.groupby() , or other functions that expect a function argument.
Return a callable object that fetches attr from its operand. If more than one attribute is requested, returns a tuple of attributes. The attribute names can also contain dots. For example:
After f = attrgetter('name') , the call f(b) returns b.name .
After f = attrgetter('name', 'date') , the call f(b) returns (b.name, b.date) .
After f = attrgetter('name.first', 'name.last') , the call f(b) returns (b.name.first, b.name.last) .
Equivalent to:
Return a callable object that fetches item from its operand using the operand’s __getitem__() method. If multiple items are specified, returns a tuple of lookup values. For example:
After f = itemgetter(2) , the call f(r) returns r[2] .
After g = itemgetter(2, 5, 3) , the call g(r) returns (r[2], r[5], r[3]) .
The items can be any type accepted by the operand’s __getitem__() method. Dictionaries accept any hashable value. Lists, tuples, and strings accept an index or a slice:
Example of using itemgetter() to retrieve specific fields from a tuple record:
Return a callable object that calls the method name on its operand. If additional arguments and/or keyword arguments are given, they will be given to the method as well. For example:
After f = methodcaller('name') , the call f(b) returns b.name() .
After f = methodcaller('name', 'foo', bar=1) , the call f(b) returns b.name('foo', bar=1) .
Mapping Operators to Functions ¶
This table shows how abstract operations correspond to operator symbols in the Python syntax and the functions in the operator module.
In-place Operators ¶
Many operations have an “in-place” version. Listed below are functions providing a more primitive access to in-place operators than the usual syntax does; for example, the statement x += y is equivalent to x = operator.iadd(x, y) . Another way to put it is to say that z = operator.iadd(x, y) is equivalent to the compound statement z = x; z += y .
In those examples, note that when an in-place method is called, the computation and assignment are performed in two separate steps. The in-place functions listed below only do the first step, calling the in-place method. The second step, assignment, is not handled.
For immutable targets such as strings, numbers, and tuples, the updated value is computed, but not assigned back to the input variable:
For mutable targets such as lists and dictionaries, the in-place method will perform the update, so no subsequent assignment is necessary:
a = iadd(a, b) is equivalent to a += b .
a = iand(a, b) is equivalent to a &= b .
a = iconcat(a, b) is equivalent to a += b for a and b sequences.
a = ifloordiv(a, b) is equivalent to a //= b .
a = ilshift(a, b) is equivalent to a <<= b .
a = imod(a, b) is equivalent to a %= b .
a = imul(a, b) is equivalent to a *= b .
a = imatmul(a, b) is equivalent to a @= b .
a = ior(a, b) is equivalent to a |= b .
a = ipow(a, b) is equivalent to a **= b .
a = irshift(a, b) is equivalent to a >>= b .
a = isub(a, b) is equivalent to a -= b .
a = itruediv(a, b) is equivalent to a /= b .
a = ixor(a, b) is equivalent to a ^= b .
Table of Contents
- Mapping Operators to Functions
- In-place Operators
Previous topic
functools — Higher-order functions and operations on callable objects
File and Directory Access
- Report a Bug
- Show Source
How to Use Conditional Statements in Python – Examples of if, else, and elif
Conditional statements are an essential part of programming in Python. They allow you to make decisions based on the values of variables or the result of comparisons.
In this article, we'll explore how to use if, else, and elif statements in Python, along with some examples of how to use them in practice.
How to Use the if Statement in Python
The if statement allows you to execute a block of code if a certain condition is true. Here's the basic syntax:
The condition can be any expression that evaluates to a Boolean value (True or False). If the condition is True, the code block indented below the if statement will be executed. If the condition is False, the code block will be skipped.
Here's an example of how to use an if statement to check if a number is positive:
In this example, we use the > operator to compare the value of num to 0. If num is greater than 0, the code block indented below the if statement will be executed, and the message "The number is positive." will be printed.

How to Use the else Statement in Python
The else statement allows you to execute a different block of code if the if condition is False. Here's the basic syntax:
If the condition is True, the code block indented below the if statement will be executed, and the code block indented below the else statement will be skipped.
If the condition is False, the code block indented below the else statement will be executed, and the code block indented below the if statement will be skipped.
Here's an example of how to use an if-else statement to check if a number is positive or negative:
In this example, we use an if-else statement to check if num is greater than 0. If it is, the message "The number is positive." is printed. If it is not (that is, num is negative or zero), the message "The number is negative." is printed.
How to Use the elif Statement in Python
The elif statement allows you to check multiple conditions in sequence, and execute different code blocks depending on which condition is true. Here's the basic syntax:
The elif statement is short for "else if", and can be used multiple times to check additional conditions.
Here's an example of how to use an if-elif-else statement to check if a number is positive, negative, or zero:
Use Cases For Conditional Statements
Example 1: checking if a number is even or odd..
In this example, we use the modulus operator (%) to check if num is evenly divisible by 2.
If the remainder of num divided by 2 is 0, the condition num % 2 == 0 is True, and the code block indented below the if statement will be executed. It will print the message "The number is even."
If the remainder is not 0, the condition is False, and the code block indented below the else statement will be executed, printing the message "The number is odd."
Example 2: Assigning a letter grade based on a numerical score
In this example, we use an if-elif-else statement to assign a letter grade based on a numerical score.
The if statement checks if the score is greater than or equal to 90. If it is, the grade is set to "A". If not, the first elif statement checks if the score is greater than or equal to 80. If it is, the grade is set to "B". If not, the second elif statement checks if the score is greater than or equal to 70, and so on. If none of the conditions are met, the else statement assigns the grade "F".
Example 3: Checking if a year is a leap year
In this example, we use nested if statements to check if a year is a leap year. A year is a leap year if it is divisible by 4, except for years that are divisible by 100 but not divisible by 400.
The outer if statement checks if year is divisible by 4. If it is, the inner if statement checks if it is also divisible by 100. If it is, the innermost if statement checks if it is divisible by 400. If it is, the code block indented below that statement will be executed, printing the message "is a leap year."
If it is not, the code block indented below the else statement inside the inner if statement will be executed, printing the message "is not a leap year.".
If the year is not divisible by 4, the code block indented below the else statement of the outer if statement will be executed, printing the message "is not a leap year."
Example 4: Checking if a string contains a certain character
In this example, we use the in operator to check if the character char is present in the string string. If it is, the condition char in string is True, and the code block indented below the if statement will be executed, printing the message "The string contains the character" followed by the character itself.
If char is not present in string, the condition is False, and the code block indented below the else statement will be executed, printing the message "The string does not contain the character" followed by the character itself.
Conditional statements (if, else, and elif) are fundamental programming constructs that allow you to control the flow of your program based on conditions that you specify. They provide a way to make decisions in your program and execute different code based on those decisions.
In this article, we have seen several examples of how to use these statements in Python, including checking if a number is even or odd, assigning a letter grade based on a numerical score, checking if a year is a leap year, and checking if a string contains a certain character.
By mastering these statements, you can create more powerful and versatile programs that can handle a wider range of tasks and scenarios.
It is important to keep in mind that proper indentation is crucial when using conditional statements in Python, as it determines which code block is executed based on the condition.
With practice, you will become proficient in using these statements to create more complex and effective Python programs.
Let’s connect on Twitter and Linkedin .
Data Scientist||Machine Learning Engineer|| Data Analyst|| Microsoft Student Learn Ambassador
If you read this far, tweet to the author to show them you care. Tweet a thanks
Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started
Guide to the Python or Operator

- Introduction
The or operator is one of the three existing logical operators in Python ( and , or , not ), which perform a logical evaluation of the passed operands.
In simple terms, when two operands are passed, it will decide whether the final value of the created logical expression is True or False . The mechanism used to evaluate the value of the final expression is based on the set of rules known as Boolean algebra .
In this guide, we'll cover the or operator in Python as well as its most common use cases.
- or Operator Basics
Python's or operator just performs logical disjunction on the two provided operands. Assuming that the operands are simply two Boolean values , the rule on how to use the or operator is pretty straight-forward:
If either one of two operands has the value True , the whole expression has the value True . In all other cases, the whole expression has the value False .
Now let's take a look at the truth table of the or operator:
This table describes the law of logical disjunction. By looking at this table, we can see that the or operator produces False as the result only if both of the operands are False as well.
All of this leads us to the concept of lazy evaluation . A mechanism used to optimize calculations of mathematical operations. In this particular case, it is used to speed up the process of evaluating Boolean expressions with the or operator.
We already know that an or expression results in a True value if either of its two operands is True . Therefore, in a Boolean expression consisting of multiple operands, it is completely unnecessary to evaluate each one of them individually.
It's enough just to read the values of operands one after the other. When we come across a True for the first time, we can safely just ignore all of the other operands and just evaluate the whole expression as True .
On the other hand, if there is no operand with the value True , we must evaluate the whole expression with the value False . That is the basic principle of lazy evaluation - don't evaluate if you don't have to.
- Using or on Boolean Variables
The or operator in Python is used to evaluate two of its operands. In this section, we'll focus on the case where both of the operands have Boolean values. In some cases, the or operator can be used with non-Boolean values, which we'll discuss in the following sections.
Let's take a look at how to use the or operator with two Boolean values:
In this example, we can see how the or operator evaluates expressions consisting only of simple Boolean values. As described in the previous sections, this piece of code will have the following output:
In the previous example, we've named Boolean expressions result1 and result2 . That way, we've created two Boolean variables with values True and False , respectively.
Those two variables can be used as the operands of another Boolean expression and, therefore, could be considered as subexpressions of the more complex Boolean expression. That's the general principle used to build more complex Boolean expressions layer by layer:
As expected, this will output:
result4 is a complex Boolean expression consisting of multiple subexpressions and Boolean values. Let's take a look at the process of unfolding it:
Based on the associative law for the or operator, we know that the order in which we apply the operator doesn't have an impact on the value of the Boolean expression, so there is no need for brackets. Therefore, we can transform result4 one step further by deleting all of the brackets:
Free eBook: Git Essentials
Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!
- Using or on Non-Boolean Variables
The or operator in Python can also be used with variables other than Boolean. You can even mix and match Boolean variables with non-Boolean variables. In this section, we'll go over some examples that illustrate the usage of the or operator with variables of different data types.
Generally speaking, any object or a variable in Python is considered to be True unless its class has a predefined __bool__() method that returns False or a __len__() method that returns 0 .
In simple terms that means that only objects considered to be False are those which are predefined to be False or those which are empty - empty lists, tuples, strings, dictionaries... The Official Python documentation gives us the list of some of the most common built-in objects considered to be False :
- Constants defined to be false: None and False .
- Zero of any numeric type: 0 , 0.0 , 0j , Decimal(0) , Fraction(0, 1)
- Empty sequences and collections: '' , () , [] , {} , set() , range(0)
Note: These are also known as Falsy Values - the ones you'd intuitively be able to reduce to a False boolean value. The opposite values are Truthy Values .
Another very important fact is that the or operator in this case returns the actual object , not the True/False value of the object.
Let's take a look at the example that illustrates mentioned behavior:
As stated before, the first operand - {} (empty dictionary) is considered to be False and the second operand - 'This is a string' (not an empty string) is considered to be True . This means that the previous expression is implicitly transformed to:
Here, exp is evaluated to True . But, when we try to print the original exp value, instead of True , the output will be:
This example illustrates the case when the or operator returns the object itself instead of its True/False value. To sum this behavior up, we can illustrate it with the altered (truth) table of the or operator:
This also applies when we combine usual Boolean values and objects in Boolean expressions.
If the expression contains at least one value that is considered to be True , the value of the expression is True , but the return value can vary based on the first True element in it.
If the first True operand to be found in the expression is a simple Boolean value, the return value will be True , but if the first True element is some sort of an object, the return value will be that object itself. For example, the following expression will return True :
And the following expression will return [1, 2, 3] , which is the first True operand found:
On the other hand, if a Boolean expression is False , meaning that no True operand was found, its return value will be its last operand, either object or False :
In this guide, we've explained the usage of the or operator in Python. We've introduced the syntax in Python and described how the or operator evaluates Boolean expressions and how it determine the proper return value based on the operands.
Besides its primary usage for evaluating Boolean expressions, the or operator can also be pretty useful in some other use cases.
Its features make it a good choice when you need to set default values for some variables or a default return value of a function and much more, but those special use cases are far beyond the scope of this article, so we'll let you explore all the use cases that the or operator can be utilized in.
You might also like...
- Hidden Features of Python
- Python Docstrings
- Handling Unix Signals in Python
- The Best Machine Learning Libraries in Python
- Guide to Sending HTTP Requests in Python with urllib3
Improve your dev skills!
Get tutorials, guides, and dev jobs in your inbox.
No spam ever. Unsubscribe at any time. Read our Privacy Policy.
In this article

Building Your First Convolutional Neural Network With Keras
Most resources start with pristine datasets, start at importing and finish at validation. There's much more to know. Why was a class predicted? Where was...

Data Visualization in Python with Matplotlib and Pandas
Data Visualization in Python with Matplotlib and Pandas is a course designed to take absolute beginners to Pandas and Matplotlib, with basic Python knowledge, and...
© 2013- 2023 Stack Abuse. All rights reserved.

Python or operator
The ‘or’ in Python is a logical operator that evaluates as True if any of the operands is True, unlike the ‘and’ operator where all operands have to be True.
For example, if we check x == 10 and y == 20 in the if condition. If either of the expression is True, the code inside the if statement will execute. This is demonstrated in the example below.
An example of OR operator
In the following example, the value of variable int_x = 10 and int_y = 20. The values of these variables are checked in the if statement with OR operator.
Python code:

Even the value of int_y is not less than 20 and it is False, still the if statement evaluated True so the statement inside if statement executed.
User input example with OR operator
For this example, the value for x and y variables are taken by the user input.
If the value of x >= 10 or y <= 20, the if statement should evaluate as True. I have entered three different set of values and see the output:

So, How OR operator works?
For understanding the concept of OR operator, have a look at the following example. Suppose we have (x or y).
The OR operator will only evaluate the y if x is False. If x was True, it will not check y.
In the case of AND operator , if x is True, it will evaluate y. If x is False then y will not be evaluated.
See this demonstration in the code below:

Hope it clears how Python OR operator works.
Using multiple OR operator example
You may evaluate more than two expressions by using the OR operator. For demonstrating this, I have declared and assigned values to three variables.
The OR operator is used twice in the if statement to evaluate three expressions. If either of the three expressions is True, the print function inside the if statement should display the message.
If all are False, the statement in the else block should execute:

You can see, only one expression out of three is True, so the if statement is True.
A Demo of ‘or’ and ‘and’ operator
Can we use the ‘or’ and ‘and’ operator in single if statement and if it works? Yes, we may use it depending on the scenario.
See an example of using the ‘and’ and ‘or’ operators in single if statement.

In that case, both OR operators must be true to make if statement True. If one is True and the other is False, the ‘AND’ operator evaluates as False.
So if variable values are a=5, b= 10, c = 15, d= 20 then:
- (a == 5 or b == 15) and (c == 16 or d == 20) = True
- (a == 5 or b == 15) and (c == 16 or d == 21) = False
- (a == 10 or b == 15) and (c == 16 or d == 20) = True
- (a == 8 or b == 13) and (c == 15 or d == 20) = False
Related Tutorials:
- How to use Python not equal and equal to operators?
- Python if, else and elif statements: Explained with 8 examples
- C++ If, else, else if Statements
- What is do while loop?
- What is ‘and’ operator in Python?
- JavaScript if else statement with 4 online demos
- What is if statement in C#?
- The not operator in Python
- PHP if..else and elseif: Explained with visual examples
- The IF..ELSE statements in MS SQL Server
note.nkmk.me
Conditional expression (ternary operator) in python.
Python has a conditional expression (sometimes called a "ternary operator"). You can write operations like if statements in one line with conditional expressions.
- 6. Expressions - Conditional expressions — Python 3.11.3 documentation
Basics of the conditional expression (ternary operator)
If ... elif ... else ... by conditional expressions, list comprehensions and conditional expressions, lambda expressions and conditional expressions.
See the following article for if statements in Python.
- Python if statements (if, elif, else)
In Python, the conditional expression is written as follows.
The condition is evaluated first. If condition is True , X is evaluated and its value is returned, and if condition is False , Y is evaluated and its value is returned.
If you want to switch the value based on a condition, simply use the desired values in the conditional expression.
If you want to switch between operations based on a condition, simply describe each corresponding expression in the conditional expression.
An expression that does not return a value (i.e., an expression that returns None ) is also acceptable in a conditional expression. Depending on the condition, either expression will be evaluated and executed.
The above example is equivalent to the following code written with an if statement.
You can also combine multiple conditions using logical operators such as and or or .
- Boolean operators in Python (and, or, not)
By combining conditional expressions, you can write an operation like if ... elif ... else ... in one line.
However, it is difficult to understand, so it may be better not to use it often.
The following two interpretations are possible, but the expression is processed as the first one.
In the sample code below, which includes three expressions, the first expression is interpreted like the second, rather than the third:
By using conditional expressions in list comprehensions, you can apply operations to the elements of the list based on the condition.
See the following article for details on list comprehensions.
- List comprehensions in Python
Conditional expressions are also useful when you want to apply an operation similar to an if statement within lambda expressions.
In the example above, the lambda expression is assigned to a variable for convenience, but this is not recommended by PEP8.
Refer to the following article for more details on lambda expressions.
- Lambda expressions in Python
Related Categories
Related articles.
- Convert between Unix time (Epoch time) and datetime in Python
- Default parameter values for functions in Python
- Composite two images according to a mask image with Python, Pillow
- NumPy: Rotate array (np.rot90)
- Get the length of a string (number of characters) in Python
- The assert statement in Python
- pandas: Add rows/columns to DataFrame with assign(), insert()
- NumPy: Limit ndarray values to min and max with clip()
- pandas: Extract columns from DataFrame based on dtype
- Count the number of 1 bits in python (int.bit_count)
- Get and change the current working directory in Python
- Read, write, and create files in Python (with and open())
- NumPy: Round up/down the elements of a ndarray (np.floor, trunc, ceil)
- Try, except, else, finally in Python (Exception handling)
- EyeHunts.com
- Interview Puzzle
Python If-Else Statement with OR Operator in Condition/Expression | Example code
- July 20, 2021 July 20, 2021
Example code use or operator to combine two basic conditional expressions in Python If-Else Statement.
In the example taking input value from the user.

Note: IDE: PyCharm 2021.3.3 (Community Edition) Windows 10 Python 3.10.1 All Python Examples are in Python 3 , so Maybe its different from python 2 or upgraded versions.
Share this:
Leave a reply cancel reply.
Your email address will not be published. Required fields are marked *
Notify me of follow-up comments by email.
Notify me of new posts by email.
- Stack Overflow Public questions & answers
- Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers
- Talent Build your employer brand
- Advertising Reach developers & technologists worldwide
- Labs The future of collective knowledge sharing
- About the company
Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Casting inside a ternary operator causes underflow
I have the following snippet of code
To my surprise, the stream output is:
first check: -1
second check: 4294967295
whereas I would've expected both checks to return -1, given that they're basically the same exact expression.
I read the documentation and it says that the operator "?" should convert the 2 values to a common type, so I would've expected int64_t to be picked(which would allow for both datatypes to be represented) but this is clearly not the case and instead uint32_t is chosen, which causes the underflow when casted to -1.
Can someone explain to me what's going on here?
- conditional-operator
- Aside, there is no such thing as "integer underflow". – n. m. could be an AI Aug 31 at 8:24
- @n.m.couldbeanAI there is, but you need to be using binary - , -= or -- , you don't get underflow with unary - – Caleth Aug 31 at 8:27
- @Caleth Underflow only exists in floating point arithmetic. Integers only have overflow, whether you add, subtract, or multiply. – n. m. could be an AI Aug 31 at 8:30
- @n.m.couldbeanAI that's not the definition I'm familiar with. I would call wraparound the grouping of overflow and underflow – Caleth Aug 31 at 8:33
- @n.m.couldbeanAI the terminology "underflow" as "overflow" on the negative end is commonly accepted. See Wikipedia article on integer overflow . See C++ Core Guidelines ES.104 Don't underflow . – Jan Schultke Aug 31 at 8:37
2 Answers 2
The conditional operator converts its operands to a common type. In your case:
The two sides of conditional operator are of type uint32_t and int respectively. Assuming that uint32_t is a type alias for unsigned int , the -1 (of type int ) is converted to unsigned int . In other words, the statement is equivalent to:
int64_t can represent all values of uint32_t , so the conversion uint32_t -> int64_t doesn't change the value.
Converting int to unsigned in such cases is decision that dates back to C (see also What happens when I mix signed and unsigned types in C++? ).

The common type of the expression (false) ? static_cast<uint32_t>(some_val) : (-1) is either uint32_t or unsigned int , but on many platforms those are the same type. The type you are assigning to doesn't change that.
Your Answer
Sign up or log in, post as a guest.
Required, but never shown
By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct .
Not the answer you're looking for? Browse other questions tagged c++ conditional-operator underflow or ask your own question .
- The Overflow Blog
- Journey to the cloud part I: Migrating Stack Overflow Teams to Azure
- Featured on Meta
- Our Design Vision for Stack Overflow and the Stack Exchange network
- Temporary policy: Generative AI (e.g., ChatGPT) is banned
- Call for volunteer reviewers for an updated search experience: OverflowAI Search
- Discussions experiment launching on NLP Collective
Hot Network Questions
- Coworker keeps telling me where to sit. How can I handle this?
- Parity and the Axiom of Choice
- Is this possible to boot an OS from some kind of a file?
- Documents needed when travelling from the U.S. to Canada and back by land as a German citizen
- Why is the French embassy in Niger still considered an embassy?
- Is the existence of substructures satisfying a theory absolute?
- Is there any jurisdiction where political views are a protected characteristic?
- How do languages support executing untrusted user code at runtime?
- Why is the convolution of two sine waves a sinc function?
- What is Lefty talking about when he says "What kind of a man has a malvole"?
- In how many ways can four distinctive letters be posted in 6 post boxes such that any two go in same post box and remaining go to different boxes?
- Zener Transistor regulator cascaded into 3-pin IC regulator
- Be big more often
- Would it harm game balance to allow potions to be self-administered with a bonus action?
- Why can we take the collection of all open balls?
- Sci-fi story involving telescopic technology that could reach out into space and view the universe from remote locations
- What order should my index's columns be for a SELECT a, b, MAX( c ) FROM d WHERE e = 1 GROUP BY a, b?
- The caption is not spanning the entire width of the table
- File Organiser in Python
- How to pass a statistics exam that overly relies on memorizing formulas?
- Why does this use of `cp -a` not preserve creation time?
- show that solutions which start in the first quadrant must remain there for all time
- Calculating integral with exponential function and parameter
- Golf the fast growing hierarchy
Your privacy
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy .
Trouble with Conditional Formatting in Excel using Python
Hello everyone,
I’m working on a Python script to perform conditional formatting on an Excel spreadsheet. The goal is to format cells based on specific conditions. I’ve been following a logic that compares values in certain cells to dynamic values from other cells.
However, I’m encountering a challenge where the formatting isn’t being applied as expected. Even though I’ve tried different approaches, I can’t seem to get the desired behavior.
- I have an Excel file with data in columns B, C, D, and E.
- I’m comparing values in rows 6 to 16 against dynamic values from B2, C2, D2, and E2.
- If the value in a cell is less than or equal to the negative dynamic value, I want to format the cell’s font color as red.
import openpyxl
Load the Excel file and sheet
workbook = openpyxl.load_workbook(‘testing.xlsx’) sheet = workbook[‘Set1’]
Get the dynamic values from B2, C2, D2, and E2
dynamic_value_b = sheet[‘B2’].value dynamic_value_c = sheet[‘C2’].value dynamic_value_d = sheet[‘D2’].value dynamic_value_e = sheet[‘E2’].value
Loop through columns B, C, D, and E
for col in range(2, 6): # Columns B to E dynamic_value = [dynamic_value_b, dynamic_value_c, dynamic_value_d, dynamic_value_e][col - 2] # Choose the corresponding dynamic value negative_dynamic_value = -dynamic_value # Calculate the negative dynamic value print(f"Negative Dynamic value from Column {chr(ord(‘A’) + col - 1)}: {negative_dynamic_value}")
Save the modified Excel file
workbook.save(‘modified_testing.xlsx’) print(“Modified Excel file saved.”)
A sample of my Data on which i am applying the code
Dynamic value in B2: 0.0099 Dynamic value in C2: 0.0252 Dynamic value in D2: 0.0185 Dynamic value in E2: 0.0115 Values in column B from row 6 to 16: B6: -0.0166 B7: 0.0427 B8: 0.0058 B9: -0.034 B10: -0.0048 B11: -0.0141 B12: 0.0091 B13: -0.0032 B14: 0.0008 B15: 0.0246 B16: 0.0119
Values in column C from row 6 to 16: C6: -0.0355 C7: -0.0279 C8: 0.0411 C9: 0.0251 C10: -0.0267 C11: -0.0216 C12: 0.0551 C13: 0.0111 C14: 0.0214 C15: -0.062 C16: -0.0057
Values in column D from row 6 to 16: D6: -0.0044 D7: -0.0173 D8: -0.031 D9: -0.0024 D10: 0.0133 D11: -0.0113 D12: 0.0066 D13: -0.0136 D14: -0.031 D15: -0.0011 D16: -0.0624
Values in column E from row 6 to 16: E6: -0.0553 E7: -0.009 E8: 0.0167 E9: 0.0073 E10: -0.0062 E11: 0.0215 E12: -0.0166 E13: 0.0287 E14: 0.0103 E15: -0.0335 E16: 0.0452
Challenge: I’ve attempted to use the provided logic, but it doesn’t seem to work as intended. Even though some values meet the condition, the formatting is inconsistent. I suspect there might be a flaw in how I’m comparing the values.
Could someone kindly review the code and logic to help me identify where I might be going wrong? Any guidance or suggestions would be greatly appreciated.
the output of the code is this
Negative Dynamic value from Column B: -0.0099 Checking cell B6: Value = -0.0166 Stopping further processing for Column B at cell B7 Negative Dynamic value from Column C: -0.0252 Checking cell C6: Value = -0.0355 Checking cell C7: Value = -0.0279 Stopping further processing for Column C at cell C8 Negative Dynamic value from Column D: -0.0185 Stopping further processing for Column D at cell D6 Negative Dynamic value from Column E: -0.0115 Checking cell E6: Value = -0.0553 Stopping further processing for Column E at cell E7 Modified Excel file saved.
If you notice it fails to recognize the value in E7 is less than equal to -0.0115 but it exits the code. It gives the desired output for columns B, C and D. Any help in this regard would be helpful please. thanks once again.
It won’t always check all of the rows from 6 to 16, but only those from 6 to the first value that’s greater than the negative dynamic value.
The value in E6 is not less than equal to the negative dynamic value, therefore it leaves the loop because of the break in the else branch of the if statement.
Thank you Matthew for your kind reply.
See what i require is the code checks row 6, if it satisfies the condition which in my case is *value is less than and equal to - the dynamic value of that column, if true, proceed to the next row, if false, exit the code.
As you can see in the results it does that it check E6 against -E2, since it satisfies the condition it (in output excel sheet the font is made red). It moves to the E7, here E7 value is -0.009 which is also less than -0.0115 (-E2), so the code should make this red as well no? since condition is true for this as well. instead it Stopping further processing for Column E at cell E7 This is very confusing. i am not so advance in coding i just started a month back.
Both are negative, but -0.009 is not as negative as -0.0115.
If you place them on a number line, -0.009 is 0.009 units from zero in the negative direction and -0.0115 is 0.0115 units from zero in the negative direction. Which one is further from zero in the negative direction?
OH. MY. GOD… I just realized that while learning python I completely forgot how to do basic maths.

When you compare them using the less than or equal to ( <= ) operator, you are asking -0.009 is less than or equal to -0.0115. -0.009 is actually greater than -0.0115, the result of this comparison is False .
Thank you for your kind reply. yes i just realized it i am an idiot. insert I may be stupid meme here

IMAGES
VIDEO
COMMENTS
We evaluate multiple conditions with two logical operators (Lutz, 2013; Python Docs, n.d.): The and operator returns True when both its left and right condition are True too. When one or both conditions are False, the outcome that and makes is False too. The or operator returns True when its left, right, or both conditions are True.
9 Answers Sorted by: 1841 Use and instead of &&. Share Follow edited Mar 29, 2022 at 10:56
It allows for conditional execution of a statement or group of statements based on the value of an expression. The outline of this tutorial is as follows: First, you'll get a quick overview of the if statement in its simplest form.
The elif keyword is Python's way of saying "if the previous conditions were not true, then try this condition". Example a = 33 b = 33 if b > a: print("b is greater than a")
There are three Boolean operators in Python: and, or, and not. With them, you can test conditions and decide which execution path your programs will take. In this tutorial, you'll learn about the Python or operator and how to use it. By the end of this tutorial, you'll have learned: How the Python or operator works
Python has three Boolean operators, or logical operators: and, or, and not. You can use them to check if certain conditions are met before deciding the execution path your programs will follow. In this tutorial, you'll learn about the and operator and how to use it in your code. In this tutorial, you'll learn how to:
The Python ternary operator (or conditional operator ), tests if a condition is true or false and, depending on the outcome, returns the corresponding value — all in just one line of code.
Using "and" and "or" operator with Python strings Ask Question Asked 9 years, 10 months ago Modified 6 months ago Viewed 74k times 29 I don't understand the meaning of the Python code line: parameter and (" " + parameter) or "" which is using strings along with logical operators and and or. Also the type of the variable parameter is a string.
In Python, Logical operators are used on conditional statements (either True or False). They perform Logical AND, Logical OR and Logical NOT operations. The truth table for all combinations of values of X and Y. Truth Table Logical AND operator Logical operator returns True if both the operands are True else it returns False. Example #1: Python3
Does Python have a ternary conditional operator? Ask Question Asked 14 years, 8 months ago Modified 2 months ago Viewed 2.8m times 7774 Want to improve this post? Provide detailed answers to this question, including citations and an explanation of why your answer is correct. Answers without enough detail may be edited or deleted.
6.1. Arithmetic conversions ¶ When a description of an arithmetic operator below uses the phrase "the numeric arguments are converted to a common type", this means that the operator implementation for built-in types works as follows: If either argument is a complex number, the other is converted to complex;
Sorted by: 3. Python evaluates boolean conditions lazily. So your code is safe as if statement will check your string existence first. From docs: The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the resulting value is returned. The expression x or y first evaluates x; if x is true ...
Logical operators are used to combine conditional statements: Python Identity Operators Identity operators are used to compare the objects, not if they are equal, but if they are actually the same object, with the same memory location: Python Membership Operators Membership operators are used to test if a sequence is presented in an object:
2. Python If-Else Statement with AND Operator In the following example, we will use and operator to combine two basic conditional expressions in boolean expression of Python If-Else statement. Python Program a = 3 b = 2 if a==5 and b>0: print('a is 5 and',b,'is greater than zero.') else: print('a is not 5 or',b,'is not greater than zero.')
7. gkayling is correct. Your first if statement returns true if: x == "monkey". or. "monkeys" evaluates to true (it does since it's not a null string). When you want to test if x is one of several values, it's convenient to use the "in" operator: test = raw_input ("It's the flying circus!
In-place Operators¶. Many operations have an "in-place" version. Listed below are functions providing a more primitive access to in-place operators than the usual syntax does; for example, the statement x += y is equivalent to x = operator.iadd(x, y).Another way to put it is to say that z = operator.iadd(x, y) is equivalent to the compound statement z = x; z += y.
In this example, we use the > operator to compare the value of num to 0. If num is greater than 0, ... It is important to keep in mind that proper indentation is crucial when using conditional statements in Python, as it determines which code block is executed based on the condition.
The or operator is one of the three existing logical operators in Python ( and, or, not ), which perform a logical evaluation of the passed operands. In simple terms, when two operands are passed, it will decide whether the final value of the created logical expression is True or False. The mechanism used to evaluate the value of the final ...
The 'or' in Python is a logical operator that evaluates as True if any of the operands is True, unlike the 'and' operator where all operands have to be True.. For example, if we check x == 10 and y == 20 in the if condition. If either of the expression is True, the code inside the if statement will execute.
Basics of the conditional expression (ternary operator) In Python, the conditional expression is written as follows. The condition is evaluated first. If condition is True, X is evaluated and its value is returned, and if condition is False, Y is evaluated and its value is returned. If you want to switch the value based on a condition, simply ...
Example code use or operator to combine two basic conditional expressions in Python If-Else Statement. In the example taking input value from the user. x = int (input ('Enter your age: ')) if x < 21 or x > 100: print ('You are too young or too old, go away!') else: print ('Welcome, you are of the right age!') Output: Note: IDE: PyCharm 2021.3.3 ...
Talk is cheap. This article will demonstrate 9 fabulous Python tricks with beginner-friendly examples to help you write more Pythonic programs in your daily work. 1. Avoid Nested Python Loops ...
The conditional operator converts its operands to a common type. In your case: res = (false) ? static_cast<uint32_t>(some_val) : (-1); The two sides of conditional operator are of type uint32_t and int respectively. Assuming that uint32_t is a type alias for unsigned int, the -1 (of type int) is converted to unsigned int.In other words, the statement is equivalent to:
Hello everyone, I'm working on a Python script to perform conditional formatting on an Excel spreadsheet. The goal is to format cells based on specific conditions. ... (<=) operator, you are asking -0.009 is less than or equal to -0.0115.-0.009 is actually greater than -0.0115, the result of this comparison is False. 1 Like.