Ausdrücke enthalten nur Bezeichner , Literale und Operatoren , in denen die Betreiber umfassen arithmetische und Booleschen Operatoren, die Funktion Call - Betreiber ()
das Abonnement Operator []
und ähnliche, und kann bis zu einem gewissen Art von „Wert“ reduziert werden, was jede Python - Objekt sein kann. Beispiele:
3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7
Aussagen (siehe 1 ,2 ) sind dagegen alles, was eine Zeile (oder mehrere Zeilen) Python-Code ausmachen kann. Beachten Sie, dass Ausdrücke auch Anweisungen sind. Beispiele:
# all the above expressions
print 42
if x: do_y()
return
a = 7
print("Hello world!")
odermy_list.append(42)
.a = yield 7
ist gültig,yield 7
ist ein Ausdruck. Vor langer Zeityield
wurde als Aussage eingeführt, aber es wurde zu einem Ausdruck in PEP 342 verallgemeinert .Ausdruck - aus dem New Oxford American Dictionary :
Allgemein ausgedrückt: Ausdrücke erzeugen mindestens einen Wert.
In Python werden Ausdrücke in der Python-Sprachreferenz ausführlich behandelt. Im Allgemeinen bestehen Ausdrücke in Python aus einer syntaktisch zulässigen Kombination von Atomen , Primärfarben und Operatoren .
Python-Ausdrücke aus Wikipedia
Beispiele für Ausdrücke:
Literale und syntaktisch korrekte Kombinationen mit Operatoren und integrierten Funktionen oder der Aufruf von benutzerdefinierten Funktionen:
Aussage aus Wikipedia:
Python-Aussagen aus Wikipedia
Allgemein gesagt: Aussagen tun etwas und bestehen oft aus Ausdrücken (oder anderen Aussagen)
Die Python-Sprachreferenz behandelt ausführliche Anweisungen und zusammengesetzte Anweisungen ausführlich.
Die Unterscheidung zwischen "Anweisungen tun etwas" und "Ausdrücke erzeugen einen Wert" kann jedoch verschwimmen:
if
ist normalerweise eine Anweisung, wie zum Beispiel,if x<0: x=0
aber Sie können auch einen bedingten Ausdruck wiex=0 if x<0 else 1
diesen als Ausdrücke haben. In anderen Sprachen wie C wird dieses Formular als solcher Operator bezeichnetx=x<0?0:1;
def func(a): return a*a
ist ein Ausdruck, wenn er verwendet wird, der jedoch aus Anweisungen besteht, wenn er definiert ist.None
ist eine Prozedur in Python:def proc(): pass
Syntaktisch können Sie ihnproc()
als Ausdruck verwenden, aber das ist wahrscheinlich ein Fehler ...func(x=2);
Ist das ein Ausdruck oder eine Aussage? ( Antwort: Ausdruck, der als Anweisung mit Nebeneffekt verwendet wird. ) Die Zuweisungsanweisungx=2
innerhalb des Funktionsaufrufs vonfunc(x=2)
in Python setzt das benannte Argumenta
nur im Aufruf von auf 2func
und ist eingeschränkter als das C-Beispiel.quelle
Obwohl dies nicht mit Python zusammenhängt:
A
expression
wertet einen Wert aus. Astatement
macht etwas.quelle
somelist.append(123)
. Die meisten Funktionsaufrufe wirklich.Anweisungen stellen eine Aktion oder einen Befehl dar, z. B. Druckanweisungen, Zuweisungsanweisungen.
Ausdruck ist eine Kombination aus Variablen, Operationen und Werten, die einen Ergebniswert ergibt.
Zuletzt Ausdrucksanweisungen
quelle
quelle
Ein Ausdruck kann beispielsweise
"1+3"
oder auf einen Wert reduziert werden"foo = 1+3"
.Es ist leicht zu überprüfen:
Wenn es nicht funktioniert, ist es eine Aussage, wenn es funktioniert, ist es ein Ausdruck.
Eine andere Aussage könnte sein:
da es nicht auf einen Wert reduziert werden kann.
quelle
a = b = expr
ist als Sonderfall zulässig). In Sprachen, die sich mehr von C inspirieren lassen, ist dies der Fall.class Foo(bar):
ist der Anfang einer Aussage, keine vollständige Aussage.foo = 1+3
ist KEIN Ausdruck. Es ist eine Aussage (eine Aufgabe um genau zu sein). Der Teil1+3
ist jedoch ein Ausdruck.Ein Ausdruck ist etwas, während eine Aussage etwas bewirkt.
Ein Ausdruck ist ebenfalls eine Aussage, muss aber eine Rückgabe haben.
PS: Der Interpreter druckt immer die Werte aller Ausdrücke aus.
quelle
AUSSAGE:
Eine Anweisung ist eine Aktion oder ein Befehl, der etwas bewirkt. Beispiel: Wenn-sonst, Schleifen usw.
AUSDRUCK:
Ein Ausdruck ist eine Kombination aus Werten, Operatoren und Literalen, die etwas ergibt.
quelle
Eine Anweisung enthält ein Schlüsselwort.
Ein Ausdruck enthält kein Schlüsselwort.
print "hello"
ist Aussage, weilprint
ist ein Schlüsselwort."hello"
ist ein Ausdruck, aber die Listenkomprimierung ist dagegen.Das Folgende ist eine Ausdrucksanweisung, und sie ist ohne Listenverständnis wahr:
quelle
x = 1
ist eine sehr gute Aussage, enthält aber keine Schlüsselwörter.is
ist ein Schlüsselwort, aberx is y
nicht unbedingt eine Aussage (im Allgemeinen ist es nur ein Ausdruck).Ausdrücke:
objects
und gebildetoperators
.<object><operator><object>
2.0 + 3
ist ein Ausdruck, der ausgewertet wird5.0
und dem ein Typfloat
zugeordnet ist.Aussagen
Anweisungen bestehen aus Ausdrücken. Es kann mehrere Zeilen umfassen.
quelle
Es gibt einige Anweisungen, die den Status unseres Python-Programms ändern können: Variablen erstellen oder aktualisieren, Funktion definieren usw.
Und Ausdrücke, die nur einen Wert zurückgeben, können den globalen oder lokalen Status in einer Funktion nicht ändern.
Aber jetzt haben wir
:=
, es ist ein Außerirdischer!quelle
Python nennt Ausdrücke "Ausdrucksanweisungen", daher ist die Frage möglicherweise nicht vollständig formuliert.
Eine Anweisung besteht aus so ziemlich allem, was Sie in Python tun können: Berechnen eines Werts, Zuweisen eines Werts, Löschen einer Variablen, Drucken eines Werts, Zurückkehren von einer Funktion, Auslösen einer Ausnahme usw. Die vollständige Liste finden Sie hier: http: // docs.python.org/reference/simple_stmts.html#
Eine Ausdrucksanweisung beschränkt sich auf das Aufrufen von Funktionen (z. B. math.cos (theta) "), Operatoren (z. B." 2 + 3 ") usw., um einen Wert zu erzeugen.
quelle
Ich denke, ein Ausdruck enthält Operatoren + Operanden und das Objekt, das das Ergebnis der Operation enthält ... z
Eine Anweisung ist jedoch einfach eine Codezeile (es kann sich um einen Ausdruck handeln) oder ein Codeblock ... z
}}
quelle