Réponses:
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!")
ou my_list.append(42)
.
a = yield 7
est valide, yield 7
est une expression. Il y a longtemps, a yield
é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 :
expression: mathématiques une collection de symboles qui expriment conjointement une quantité: l'expression pour 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 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:
>>> 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ée comme le plus petit élément autonome d'un langage de programmation impératif. Un programme est formé d'une séquence d'une ou plusieurs instructions. Une instruction aura des composants internes (par exemple, des expressions).
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 que if x<0: x=0
mais vous pouvez également avoir une expression conditionnelle comme x=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'utiliser proc()
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 fonction func(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.Bien que cela ne soit pas lié à Python:
Un expression
évalue à une valeur. A statement
fait quelque chose.
>>> x + 2 # an expression
>>> x = 1 # a statement
>>> y = x + 1 # a statement
>>> print y # a statement (in 2.x)
2
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.
print 'hello', x = 1
L'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
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 déclaration, si c'est le cas, c'est une expression.
Une autre déclaration pourrait être:
class Foo(Bar): pass
car il ne peut pas être réduit à une valeur.
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 partie 1+3
est cependant une expression.
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.
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
PS: L'interprète imprime toujours les valeurs de toutes les expressions.
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 donne quelque chose.
val a: Int = 5 + 5 #yields 10
Une instruction contient un mot-clé.
Une expression ne contient pas de mot-clé.
print "hello"
est une déclaration, car 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 il est vrai sans compréhension de liste:
(x*2 for x in range(10))
x = 1
est une déclaration parfaitement fine, mais ne contient pas de mots clés.
is
est un mot-clé mais x 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 évalue 5.0
et a un type qui lui est float
associé.
Déclarations
Les déclarations sont composées d'expressions. Il peut s'étendre sur plusieurs lignes.
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!
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.
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
var sum = a + b;
mais une déclaration est simplement une ligne de 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
}