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

En Python, Quelle est la différence entre les expressions et les instructions?

251
demandé sur Chris Martin 2011-01-18 22:19:58

12 réponses

Les Expressions contiennent uniquement des identificateurs , littéraux et opérateurs , où les opérateurs incluent des 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

Consolidés (voir 1, 2), d'autre part, sont tout ce qui peut faire jusqu'à une ligne (ou plusieurs lignes) du code Python. Notez que les expressions sont également des instructions. Exemples:

# all the above expressions
print 42
if x: do_y()
return
a = 7
187
répondu Sven Marnach 2015-03-18 23:42:10

L'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 2nr.

En termes généraux bruts: les Expressions produisent au moins une valeur.

En Python, les expressions sont largement couvertes dans la référence du langage Python {[29] } en général, les expressions en Python sont composées d'un du point de vue syntaxique juridique combinaison de Atomes, Primaires et les Opérateurs.

Les expressions Python de Wikipedia

Exemples d'expressions:

Littéraux et combinaisons syntaxiquement correctes avec opérateurs et fonctions intégrées ou l'appel d'un utilisateur-fonctions écrites:

>>> 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 Wikipédia:

Dans la programmation informatique d'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éclaration. Une déclaration aura composants internes (par exemple, expression).

Les instructions Python de Wikipedia

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

La référence du langage Python couvre Simple Instructions etinstructions composées largement.

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

  • les compréhensions de liste sont considérées comme des "Expressions" mais elles ont des constructions en boucle et donc font aussi quelque chose.
  • Le if est généralement un énoncé tel que if x<0: x=0 mais vous pouvez aussi avoir un expression conditionnelle comme x=0 if x<0 else 1 qui sont des expressions. Dans D'autres langues, comme C, Cette forme est appelée un opérateur comme ceci x=x<0?0:1;
  • vous pouvez écrire vos propres Expressions en écrivant une fonction. def func(a): return a*a est une expression lorsqu'elle est utilisée mais composée d'instructions lorsqu'elle est définie.
  • Une expression qui retourne None est une procédure en Python: def proc(): pass Syntaxiquement, vous pouvez utiliser proc(), comme expression, mais c'est probablement un bug...
  • Python est un peu plus strict que dire que C est sur les différences entre une Expression et une instruction. En C, tout l'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 une déclaration avec un effet secondaire.) La forme func(x=2) est illégal en Python (ou au moins, il a une signification différente func(a=3) définit l'argument nommé a 3)
89
répondu dawg 2017-05-23 12:26:07

Bien que ce ne soit pas lié à Python:

Un expression évalue à une valeur. Un statement fait quelque chose.

>>> x = 1
>>> y = x + 1     # an expression
>>> print y       # a statement (in 2.x)
2
47
répondu user225312 2011-01-18 19:29:26

Les instructions représentent une action ou une commande, par exemple les instructions d'impression, les instructions d'affectation.

print 'hello', x = 1

Expression est une combinaison de variables, d'opérations et de valeurs qui donne une valeur de résultat.

5 * 5 # yields 25

Enfin, les déclarations d'expression

print 5*5
8
répondu eosimosu 2017-01-10 15:27:41

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

, Il est facile de vérifier:

print foo = 1+3

Si cela ne fonctionne pas, c'est une affirmation, si elle le fait, c'est une expression.

Une autre déclaration pourrait être:

class Foo(Bar): pass

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

2
répondu Flavius 2017-01-31 07:31:16

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

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

PS: l'interpréteur imprime toujours les valeurs de toutes les expressions.

2
répondu donald jiang 2017-10-18 09:56:20
  1. une expression est une instruction qui renvoie une valeur. Donc, si elle peut apparaître sur le côté droit de l'affectation, ou en tant que paramètre à un appel de méthode, c'est une expression.
  2. Certains codes peuvent être à la fois une expression ou une instruction, selon le contexte. Le langage peut avoir un moyen de différencier les deux lorsqu'ils sont ambigus.
1
répondu Steven Spungin 2018-07-18 11:48:32

Une instruction contient un mot clé.

Une expression ne contient pas de mot clé.

print "hello" est une déclaration, parce que print est un mot-clé.

"hello" est une expression, mais la compression de liste est contre cela.

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
répondu abifromkerala 2014-03-31 13:55:00

Je pense que l'expression contient des opérateurs + opérandes et l'objet qui contient le résultat de l'opération... par exemple

var sum = a + b;

Mais une instruction est simplement une ligne d'un code (ce peut être une expression) ou un bloc de code... par exemple

fun printHello(name: String?): Unit {
if (name != null)
    println("Hello ${name}")
else
    println("Hi there!")
// `return Unit` or `return` is optional

}

0
répondu Rashid Iqbal 2017-07-27 13:02:48

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 qui renvoie 5.0 et a un type float associés.

États

Les déclarations sont composées d'expression(s). Il peut couvrir plusieurs lignes.

0
répondu ssokhey 2017-08-22 23:33:21

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

0
répondu FouadDev 2018-10-01 18:18:25

Python appelle les expressions "instructions d'expression", Donc la question n'est peut-être pas complètement formée.

Une instruction consiste à peu près tout ce que vous pouvez faire en Python: calculer une valeur, attribuer une valeur, supprimer une variable, imprimer une valeur, renvoyer d'une fonction, déclencher une exception, etc. La liste complète est ici: http://docs.python.org/reference/simple_stmts.html#

Une instruction d'expression est limitée aux fonctions d'appel (par exemple, mathématique.cos(theta)"), les opérateurs ( par exemple, "2+3"), etc. pour produire une valeur.

-1
répondu Walter Nissen 2011-01-18 19:29:36