Les expressions ne contiennent que des identificateurs , littéraux et opérateurs , où les opérateurs comprennent les opérateurs arithmétiques et booléennes, la fonction opérateur d'appel ()
l' opérateur d'abonnement []
et similaire, et peuvent être réduits à une sorte de « valeur », qui peut être un 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 ), d'autre part, sont tout ce qui peut constituer une ligne (ou plusieurs lignes) de code Python. Notez que les expressions sont également des instructions. Exemples:
# all the above expressions
print 42
if x: do_y()
return
a = 7
print("Hello world!")
oumy_list.append(42)
.a = yield 7
est valide,yield 7
est une expression. Il y a longtemps, ayield
été présenté comme une déclaration, mais il a été généralisé à une expression du PEP 342 .Expression - du New Oxford American Dictionary :
En termes généraux bruts: les expressions produisent au moins une valeur.
En Python, les expressions sont couvertes en détail dans le Python Language Reference En général, les expressions en Python sont composées d'une combinaison syntaxiquement légale d' atomes , de primaires et d' opérateurs .
Expressions Python de Wikipedia
Exemples d'expressions:
Littéraux et combinaisons syntaxiquement correctes avec les opérateurs et les fonctions intégrées ou l'appel d'une fonction écrite par l'utilisateur:
Déclaration de Wikipedia:
Déclarations 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 largement les instructions simples et les instructions composées .
La distinction "Les déclarations font quelque chose" et "les expressions produisent une valeur" peut cependant devenir floue:
if
s'agit généralement d'une instruction, telle queif x<0: x=0
mais vous pouvez également avoir une expression conditionnelle commex=0 if x<0 else 1
celle-ci sont des expressions. Dans d'autres langages, comme C, ce formulaire est appelé un opérateur comme celui-cix=x<0?0:1;
def func(a): return a*a
est une expression lorsqu'elle est utilisée mais composée d'instructions lorsqu'elle est définie.None
est une procédure en Python:def proc(): pass
syntaxiquement, vous pouvez l'utiliserproc()
comme expression, mais c'est probablement un bug ...func(x=2);
Est-ce une expression ou une déclaration? ( Réponse: Expression utilisée comme une instruction avec un effet secondaire. ) L'instruction d'affectation de l'x=2
intérieur de l'appel de fonctionfunc(x=2)
en Python définit l'argument nomméa
à 2 uniquement dans l'appel àfunc
et est plus limitée que l'exemple C.la source
Bien que cela ne soit pas lié à Python:
Un
expression
évalue à une valeur. Astatement
fait quelque chose.la source
somelist.append(123)
. La plupart des appels de fonction, vraiment.Les instructions représentent une action ou une commande, par exemple des instructions d'impression, des instructions d'affectation.
L'expression est une combinaison de variables, d'opérations et de valeurs qui donne une valeur de résultat.
Enfin, les déclarations d'expression
la source
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:
Si cela ne fonctionne pas, c'est une déclaration, si c'est le cas, c'est une expression.
Une autre déclaration pourrait être:
car il ne peut pas être réduit à une valeur.
la source
a = b = expr
est autorisée, comme cas spécial) en Python. Dans les langues qui s'inspirent davantage du C, c'est le cas.class Foo(bar):
est le début d'une instruction, pas une instruction complète.foo = 1+3
n'est PAS une expression. C'est une déclaration (une mission pour être précis). La partie1+3
est cependant une expression.la source
Une expression est quelque chose, tandis qu'une déclaration fait quelque chose.
Une expression est également une déclaration, mais elle doit avoir un retour.
PS: L'interprète imprime toujours les valeurs de toutes les expressions.
la source
DÉCLARATION:
Une déclaration est une action ou une commande qui fait quelque chose. Ex: If-Else, Loops..etc
EXPRESSION:
Une expression est une combinaison de valeurs, d'opérateurs et de littéraux qui donne quelque chose.
la source
Une instruction contient un mot-clé.
Une expression ne contient pas de mot-clé.
print "hello"
est une déclaration, carprint
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 il est vrai sans compréhension de liste:
la source
x = 1
est une déclaration parfaitement fine, mais ne contient pas de mots clés.is
est un mot-clé maisx is y
n'est pas nécessairement une déclaration (en général, ce n'est qu'une expression).Expressions:
objects
etoperators
.<object><operator><object>
2.0 + 3
est une expression qui évalue5.0
et a un type qui lui estfloat
associé.Déclarations
Les déclarations sont composées d'expressions. Il peut s'étendre sur plusieurs lignes.
la source
Il y a quelques instructions qui pourraient changer l'état de notre programme Python: créer ou mettre à jour des variables, définir une fonction, etc.
Et les expressions qui renvoient simplement une valeur ne peuvent pas changer l'état global ou l'état local dans une fonction.
Mais maintenant nous avons
:=
, c'est un extraterrestre!la source
Python appelle les expressions "déclarations d'expression", donc la question n'est peut-être pas complètement formulée.
Une instruction consiste à peu près tout ce que vous pouvez faire en Python: calculer une valeur, assigner une valeur, supprimer une variable, imprimer une valeur, revenir d'une fonction, lever 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.cos (thêta) "), aux opérateurs (par exemple," 2 + 3 "), etc. pour produire une valeur.
la source
Je pense qu'une expression contient des opérateurs + opérandes et l'objet qui contient le résultat de l'opération ... par exemple
mais une déclaration est simplement une ligne de code (ce peut être une expression) ou un bloc de code ... par exemple
}
la source