Expression and statement in python

In Python, what is the difference between expressions and statements?

Chris Martin

29.7k8 gold badges74 silver badges131 bronze badges

asked Jan 18, 2011 at 19:19

Expression and statement in python

1

Expressions only contain identifiers, literals and operators, where operators include arithmetic and boolean operators, the function call operator () the subscription operator [] and similar, and can be reduced to some kind of "value", which can be any Python object. Examples:

3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7

Statements (see 1, 2), on the other hand, are everything that can make up a line (or several lines) of Python code. Note that expressions are statements as well. Examples:

# all the above expressions
print 42
if x: do_y()
return
a = 7

songololo

4,4063 gold badges32 silver badges49 bronze badges

answered Jan 18, 2011 at 19:27

Sven MarnachSven Marnach

542k114 gold badges914 silver badges816 bronze badges

15

Expression -- from the New Oxford American Dictionary:

expression: Mathematics a collection of symbols that jointly express a quantity : the expression for the circumference of a circle is 2πr.

In gross general terms: Expressions produce at least one value.

In Python, expressions are covered extensively in the Python Language Reference In general, expressions in Python are composed of a syntactically legal combination of Atoms, Primaries and Operators.

Python expressions from Wikipedia

Examples of expressions:

Literals and syntactically correct combinations with Operators and built-in functions or the call of a user-written functions:

>>> 23
23
>>> 23l
23L
>>> range(4)
[0, 1, 2, 3] 
>>> 2L*bin(2)
'0b100b10'
>>> def func(a):      # Statement, just part of the example...
...    return a*a     # Statement...
... 
>>> func(3)*4
36    
>>> func(5) is func(a=5)
True

Statement from Wikipedia:

In computer programming a statement can be thought of as the smallest standalone element of an imperative programming language. A program is formed by a sequence of one or more statements. A statement will have internal components (e.g., expressions).

Python statements from Wikipedia

In gross general terms: Statements Do Something and are often composed of expressions (or other statements)

The Python Language Reference covers Simple Statements and Compound Statements extensively.

The distinction of "Statements do something" and "expressions produce a value" distinction can become blurry however:

  • List Comprehensions are considered "Expressions" but they have looping constructs and therfore also Do Something.
  • The if is usually a statement, such as if x<0: x=0 but you can also have a conditional expression like x=0 if x<0 else 1 that are expressions. In other languages, like C, this form is called an operator like this x=x<0?0:1;
  • You can write you own Expressions by writing a function. def func(a): return a*a is an expression when used but made up of statements when defined.
  • An expression that returns None is a procedure in Python: def proc(): pass Syntactically, you can use proc() as an expression, but that is probably a bug...
  • Python is a bit more strict than say C is on the differences between an Expression and Statement. In C, any expression is a legal statement. You can have func(x=2); Is that an Expression or Statement? (Answer: Expression used as a Statement with a side-effect.) The assignment statement of x=2 inside of the function call of func(x=2) in Python sets the named argument a to 2 only in the call to func and is more limited than the C example.

answered Jan 19, 2011 at 0:25

Expression and statement in python

dawgdawg

92.4k23 gold badges121 silver badges200 bronze badges

2

Though this isn't related to Python:

An expression evaluates to a value. A statement does something.

>>> x + 2         # an expression
>>> x = 1         # a statement 
>>> y = x + 1     # a statement
>>> print y       # a statement (in 2.x)
2

Expression and statement in python

Amir

2,0491 gold badge17 silver badges24 bronze badges

answered Jan 18, 2011 at 19:29

user225312user225312

120k66 gold badges167 silver badges181 bronze badges

8

An expression is something that can be reduced to a value, for example "1+3" is an expression, but "foo = 1+3" is not.

It's easy to check:

print(foo = 1+3)

If it doesn't work, it's a statement, if it does, it's an expression.

Another statement could be:

class Foo(Bar): pass

as it cannot be reduced to a value.

Expression and statement in python

np8

22.8k9 gold badges78 silver badges89 bronze badges

answered Jan 18, 2011 at 19:24

Expression and statement in python

FlaviusFlavius

13.3k13 gold badges80 silver badges124 bronze badges

6

Statements represent an action or command e.g print statements, assignment statements.

print 'hello', x = 1

Expression is a combination of variables, operations and values that yields a result value.

5 * 5 # yields 25

Lastly, expression statements

print 5*5

answered Apr 10, 2015 at 18:59

Expression and statement in python

Emmanuel OsimosuEmmanuel Osimosu

5,1622 gold badges35 silver badges38 bronze badges

An expression is something, while a statement does something.
An expression is a statement as well, but it must have a return.

>>> 2 * 2          #expression
>>> print(2 * 2)     #statement

PS:The interpreter always prints out the values of all expressions.

Adalcar

1,45810 silver badges25 bronze badges

answered Oct 18, 2017 at 9:29

4

  1. An expression is a statement that returns a value. So if it can appear on the right side of an assignment, or as a parameter to a method call, it is an expression.
  2. Some code can be both an expression or a statement, depending on the context. The language may have a means to differentiate between the two when they are ambiguous.

answered Jan 3, 2018 at 13:32

Steven SpunginSteven Spungin

23.7k5 gold badges77 silver badges66 bronze badges

0

Expressions always evaluate to a value, statements don't.

e.g.

variable declaration and assignment are statements because they do not return a value

const list = [1,2,3];

Here we have two operands - a variable 'sum' on the left and an expression on the right. The whole thing is a statement, but the bit on the right is an expression as that piece of code returns a value.

const sum = list.reduce((a, b)=> a+ b, 0);  

Function calls, arithmetic and boolean operations are good examples of expressions.

Expressions are often part of a statement.

The distinction between the two is often required to indicate whether we require a pice of code to return a value.

answered Aug 8, 2020 at 9:15

Expression and statement in python

Alex SAlex S

611 silver badge3 bronze badges

STATEMENT:

A Statement is a action or a command that does something. Ex: If-Else,Loops..etc

val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")

EXPRESSION:

A Expression is a combination of values, operators and literals which yields something.

val a: Int = 5 + 5 #yields 10

answered Mar 9, 2019 at 15:33

Expression and statement in python

Raja ShekarRaja Shekar

1232 silver badges12 bronze badges

2

References

Expressions and statements

2.3 Expressions and statements - thinkpython2 by Allen B. Downey

2.10. Statements and Expressions - How to Think like a Computer Scientist by Paul Resnick and Brad Miller


An expression is a combination of values, variables, and operators. A value all by itself is considered an expression, and so is a variable, so the following are all legal expressions:

>>> 42
42
>>> n
17
>>> n + 25
42

When you type an expression at the prompt, the interpreter evaluates it, which means that it finds the value of the expression. In this example, n has the value 17 and n + 25 has the value 42.


A statement is a unit of code that has an effect, like creating a variable or displaying a value.

>>> n = 17
>>> print(n)

The first line is an assignment statement that gives a value to n. The second line is a print statement that displays the value of n. When you type a statement, the interpreter executes it, which means that it does whatever the statement says. In general, statements don’t have values.

answered Aug 25, 2020 at 8:51

Expression and statement in python

blessedblessed

6051 gold badge9 silver badges12 bronze badges

An expression translates to a value.

A statement consumes a value* to produce a result**.


*That includes an empty value, like: print() or pop().

**This result can be any action that changes something; e.g. changes the memory ( x = 1) or changes something on the screen ( print("x") ).


A few notes:

  • Since a statement can return a result, it can be part of an expression.
  • An expression can be part of another expression.

answered Nov 18, 2020 at 10:18

Expression and statement in python

PontiosPontios

2,23925 silver badges30 bronze badges

Statements before could change the state of our Python program: create or update variables, define function, etc.

And expressions just return some value can't change the global state or local state in a function.

But now we got :=, it's an alien!

answered Dec 28, 2019 at 15:24

Expression and statement in python

roachsinairoachsinai

5194 silver badges12 bronze badges

Expressions:

  • Expressions are formed by combining objects and operators.
  • An expression has a value, which has a type.
  • Syntax for a simple expression:

    2.0 + 3 is an expression which evaluates to 5.0 and has a type float associated with it.

    Statements

    Statements are composed of expression(s). It can span multiple lines.

    answered Aug 22, 2017 at 23:33

    ObiWanObiWan

    1961 silver badge12 bronze badges

    A statement contains a keyword.

    An expression does not contain a keyword.

    print "hello" is statement, because print is a keyword.

    "hello" is an expression, but list compression is against this.

    The following is an expression statement, and it is true without list comprehension:

    (x*2 for x in range(10))
    

    Expression and statement in python

    Racil Hilan

    24k12 gold badges48 silver badges52 bronze badges

    answered Mar 31, 2014 at 13:29

    2

    Think of statements as consecutive actions or instructions that your program executes. So, value assignments, if clauses, together with for and while loops, are all statements. Function and class definitions are statements, too.

    Think of expressions as anything that can be put into an if clause. Typical examples of expressions are literals, values returned by operators (excluding in-place operators), and comprehensions, such as list, dictionary, and set comprehensions. Function calls and method calls are expressions, too.

    Python 3.8 introduced the dedicated := operator, which assigns a value to the variable but acts as an expression instead of a statement. Due to its visual appearance, it was quickly nicknamed the walrus operator.

    answered May 20 at 8:52

    Expression and statement in python

    Python calls expressions "expression statements", so the question is perhaps not fully formed.

    A statement consists of pretty much anything you can do in Python: calculating a value, assigning a value, deleting a variable, printing a value, returning from a function, raising an exception, etc. The full list is here: http://docs.python.org/reference/simple_stmts.html#

    An expression statement is limited to calling functions (e.g., math.cos(theta)"), operators ( e.g., "2+3"), etc. to produce a value.

    answered Jan 18, 2011 at 19:29

    Walter NissenWalter Nissen

    15.8k4 gold badges25 silver badges27 bronze badges

    12

    Not the answer you're looking for? Browse other questions tagged python expression or ask your own question.