web-dev-qa-db-fra.com

Quelle est la différence entre une expression et une déclaration en Python?

En Python, quelle est la différence entre les expressions et les déclarations?

268
wassimans

Expressions ne contient que identifiants , littéraux et opérateurs , où les opérateurs incluent les opérateurs arithmétiques et booléens, la fonction opérateur d'appel() l'opérateur d'abonnement[] et similaire, et peut être réduit à une sorte de "valeur", qui peut être n'importe quel objet Python. Exemples:

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

Déclarations (voir  1,  2), par contre, sont tout ce qui peut constituer une ligne (ou plusieurs lignes) de code Python. Notez que les expressions sont aussi des déclarations. Exemples:

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

Expression - de mon dictionnaire: 

expression: Mathématiques une collection de symboles qui expriment conjointement un quantité: l'expression pour le la circonférence d'un cercle est 2πr.

En termes généraux bruts: Les expressions produisent au moins une valeur.

En Python, les expressions sont largement couvertes dans les Référence du langage Python En général, les expressions en Python sont composées d'une combinaison syntaxiquement légale de Atoms , Primaires et Les ​​opérateurs

_ { Expressions de Python de Wikipedia }

Exemples d'expressions: 

Littéraux et combinaisons syntaxiquement correctes avec opérateurs et fonctions intégrées ou à l'appel d'une fonction écrite par l'utilisateur:

>>> 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

Déclaration de Wikipedia:

En programmation informatique, une déclaration peut être considéré comme le plus petit élément autonome d'un impératif langage de programmation. Un programme est formé par une séquence d'un ou plusieurs déclarations. Une déclaration aura composants internes (par exemple, expressions).

_ { Déclarations Python de Wikipedia }

En termes généraux bruts: déclarations faites quelque chose et sont souvent composées d'expressions (ou d'autres déclarations)

La référence du langage Python couvre instructions simples et instructions composées de manière exhaustive. 

La distinction entre "Les déclarations font quelque chose" et "Les expressions produisent une valeur" peut devenir floue: 

  • (Compréhensions de liste) sont considérés comme des "expressions", mais ils ont des constructions en boucle et font donc aussi quelque chose. 
  • if est généralement une instruction, telle que if x<0: x=0, mais vous pouvez également avoir une expression conditionnelle comme x=0 if x<0 else 1 qui sont des expressions. Dans d'autres langues, comme C, ce formulaire s'appelle un opérateur comme celui-ci x=x<0?0:1; 
  • Vous pouvez écrire vos propres expressions en écrivant une fonction. def func(a): return a*a est une expression utilisée, mais composée d'instructions définie. 
  • Une expression qui retourne None est une procédure en Python: def proc(): pass Syntaxiquement, vous pouvez utiliser proc() comme expression, mais il s’agit probablement d’un bogue ...
  • Python est un peu plus strict que C ne concerne que les différences entre une expression et une déclaration. En C, toute expression est une déclaration légale. Vous pouvez avoir func(x=2); Est-ce une expression ou une déclaration? ( Answer: expression utilisée comme déclaration avec un effet secondaire. ) Le formulaire func(x=2) est illégal en Python (ou du moins, sa signification est différente. func(a=3) définit l'argument nommé a à 3)
96
dawg

Bien que cela ne soit pas lié à Python:

Un expression donne une valeur . Un statement fait quelque chose.

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

Les instructions représentent une action ou une commande, par exemple print, une instruction d’affectation.  

print 'hello', x = 1

L'expression est une combinaison de variables, d'opérations et de valeurs qui produit une valeur de résultat.

5 * 5 # yields 25

Enfin, les expressions

print 5*5
8
eosimosu

Une expression est quelque chose qui peut être réduit à une valeur, par exemple "1+3" ou "foo = 1+3".

C'est facile à vérifier:

print foo = 1+3

Si cela ne fonctionne pas, c'est une déclaration, sinon, c'est une expression.

Une autre déclaration pourrait être:

class Foo(Bar): pass

comme il ne peut pas être réduit à une valeur.

3
Flavius
  1. Une expression est une déclaration qui renvoie une valeur. Donc, s'il peut apparaître à droite d'une affectation ou en tant que paramètre d'un appel de méthode, il s'agit d'une expression.
  2. Certains codes peuvent être à la fois une expression ou une instruction, en fonction du contexte. Le langage peut permettre de différencier les deux quand ils sont ambigus.
3
Steven Spungin

Une expression est quelque chose, alors qu'une déclaration fait quelque chose .
Une expression est aussi une déclaration, mais elle doit avoir un retour.

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

PS: l'interprète affiche toujours les valeurs de toutes les expressions.

3
donald jiang

DÉCLARATION:

Une déclaration est une action ou une commande qui fait quelque chose. Ex: If-Else, Loops..etc

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

EXPRESSION:

Une expression est une combinaison de valeurs, d'opérateurs et de littéraux qui produit quelque chose.

val a: Int = 5 + 5 #yields 10
0
Raja Shekar

Expressions:

  • Les expressions sont formées en combinant objects et operators.
  • Une expression a une valeur, qui a un type.
  • Syntaxe pour une expression simple: <object><operator><object>

2.0 + 3 est une expression dont le résultat est 5.0 et qui est associée à un type float.

Déclarations

Les déclarations sont composées d'expressions. Il peut couvrir plusieurs lignes.

0
ssokhey

Une déclaration contient un mot clé.

Une expression ne contient pas de mot-clé.

print "hello" est une instruction, car print est un mot clé.

"hello" est une expression, mais la compression de liste l’oppose.

Ce qui suit est une déclaration d'expression, et c'est vrai sans compréhension de liste:

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

En termes simples: une déclaration est composée d'une ou de plusieurs expressions, tandis qu'une expression est composée d'un ou de plusieurs identificateurs (noms), littéraux et opérateurs.

0
FouadDev