Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python

Hintergrund

Meine Schulaufgaben enthalten Lesen. Wenn ich es also lese, stoße ich auf die Konzepte von "Ausdrücken" und "Aussagen". Selbst wenn ich es lese, ist der Unterschied nicht so klar, also habe ich beschlossen, nachzuforschen. ~~ Ich glaube, dass die Schulseite mir nicht sagt, dass ich so viel lesen und alles verstehen soll ... ~~

def. von Aussagen und Ausdrücken

Die Definition durch Lesen lautet

Statements typically describe actions. When the Python interpreter executes a statement, it carries out the corresponding action.

Bedeutet das "x = 1" oder "y =" Apfel "? Das war meine Interpretation, aber [stackoverflow](http://stackoverflow.com/questions/4728073/what-is-the-difference-bet- zwischen-an-expression-and-a-statement-in-python )

Expressions only contain identifiers, literals and operators, where operators include arithmetic and boolean operators, the function call operator () the subscription operator [] and similar, and can be reduced to some kind of "value", which can be any Python object. Statements (see 1, 2), on the other hand, are everything that can make up a line (or several lines) of Python code.

Dies bedeutet, dass "Ausdrücke" auch als "Aussagen" betrachtet werden können. Während es nur mit "Ausdruck", "Anweisung" abgeschlossen werden kann (was Sie beim Lesen von [diesem Bereich] mehr nachdenken lässt (https://docs.python.org/2/reference/simple_stmts.html)) Der Eindruck ist, dass es gut mit anderen Blöcken funktioniert. Es gibt mit ziemlicher Sicherheit einen "Ausdruck" in der "Aussage".

Von quora

A statement is a complete line of code that performs some action, while an expression is any section of the code that evaluates to a value. Expressions can be combined “horizontally” into larger expressions using operators, while statements can only be combined “vertically” by writing one after another, or with block constructs. Every expression can be used as a statement (whose effect is to evaluate the expression and ignore the resulting value), but most statements cannot be used as expressions.

Die Antwort auf "Ausdruck" in diesem Stackoverflow war ebenfalls leicht zu verstehen.

Expressions represent something, like a number, a string, or an instance of a class. Any value is an expression! Anything that does something is a statement. Any assignment to a variable or function call is a statement. Any value contained in that statement in an expression.

foo = "hello" is a statement that assigns foo to the value of the expression "hello". Since the code "hello" is a simple expression, meaning it contains no operations, nothing is actually evaluated, so foo is just assigned to "hello". More complex expressions actually evaluate things, like adding numbers. Using the word expression seems like it is making things more confusing. Expressions are nothing but values, except they can have operations like addition or subtraction.

eval evaluates the string as if it were a python expression. Eval does takes an expression as an argument. However, there's nothing special about this since every single value is an expression. Saying "eval takes a value as an argument" is saying exactly the same thing, but it sounds much simpler. :D eval( "2+2" ) passes the string "2+2" to the function. The function evaluates the expression contained in the string, which comes out to 4.

The book by Zelle says eval() evaluates string as an expression, what does that exactly mean if string is already an expression?

Any string is an expression since it represents a value. However, what is in the string has absolutely no impact on it being an expression. If its a value, its an expression. When it is "evaluated as an expression by eval", the characters inside the string are executed as if they were a python expression.

Auch hier

Ein Satz ist ein sprachliches Element, das sich von selbst vervollständigt. Ein Ausdruck ist ein sprachliches Element, das für sich genommen im Grunde unvollständig ist und als Teil einer Aussage oder eines Ausdrucks verwendet wird. Das größte Merkmal des Ausdrucks ist außerdem, dass er einen Wert zurückgibt (die Anweisung gibt keinen Wert zurück). Beispielsweise gibt ein konstanter Ausdruck den Wert selbst zurück. Ein bedingter Ausdruck ist ein Ausdruck, der einen booleschen Wert (True / False) zurückgibt. Es gibt einen Vergleichsausdruck als einen der bedingten Ausdrücke, aber da der bedingte Ausdruck selbst alles sein kann, solange er True / False zurückgibt, ist ein einfacher boolescher True (konstanter Ausdruck) auch ein bedingter Ausdruck. Der Vergleichsausdruck kann ein bedingter Ausdruck sein, da er die Ausdrücke auf der linken und rechten Seite mit einem dazwischen liegenden Vergleichsoperator vergleicht und das Ergebnis als Wahr / Falsch zurückgibt.

Übrigens bedeutet __evaluate argument einfach calling function __. Es passiert, wenn Sie das Argument tatsächlich in den Klammern der Funktion übergeben. __evaluate function unterscheidet sich von calling function __. Dies wurde einfach als eine Funktion definiert. Die richtige Reihenfolge ist also "Funktion auswerten" → "Argument auswerten" → "Funktion wird aufgerufen".

Nachtrag

Auch wenn ich nicht danach gesucht habe, wurde es in der nächsten Vorlesung vorgestellt, also vorerst (lacht)

an expression describes a computation and evaluates to a value. all expressions can use function call notation

Jeder "Aufrufausdruck" mit dem Namen "add (2, 3)" ist auch ein "Ausdruck". add heißt operator, und was sich in()befindet, heißt operand. Der "Aufrufausdruck" erkennt zuerst den "Operator" und den "Operanden", behandelt den "Operator" als "Argument" und verwendet die "Funktion", um den "Wert" auszugeben. Übrigens, obwohl es selbstverständlich ist, kann dies auch als "2 + 3" ausgedrückt werden. Die Umwandlung von "add (2,3)" in "2 + 3" wird als __syntaktischer Zucker __ bezeichnet. Außerdem werden die in der Mathematik verwendeten Zeichen +, *, - oder / als __infix-Notation __ bezeichnet.

Es ist genau das gleiche wie oben, wurde aber auch in hier beschrieben, sodass es teilweise nachgedruckt wird.

Executing x = 2 does not return a value nor evaluate a function on some arguments, since the purpose of assignment is instead to bind a name to a value. In general, statements are not evaluated but executed; they do not produce a value but instead make some change. Each type of expression or statement has its own evaluation or execution procedure.

Nachtrag Nr. 2

Nachgedruckt aus dem Abschnitt "Anweisungen" des Lesens

Expressions can also be executed as statements, in which case they are evaluated, but their value is discarded. Executing a pure function has no effect, but executing a non-pure function can cause effects as a consequence of function application.

ref: Unterschied zwischen reiner und nicht reiner Funktion

def square(x):
    mul(x, x)# Watch out! This call doesn't return a value.

Der Ausdruck wird auf die gleiche Weise wie die Anweisung verarbeitet, aber der Wert wird nicht angezeigt. Daher gibt es "Wert" zusammen mit "Zuweisungs-, Def- und Rückgabeanweisungen" aus.

Nachtrag Nr. 3

Ich persönlich habe ein einfaches Diagramm erstellt, das auf der Erklärung des Professors zu "Ausdruck" und "Aussage" in einer späteren Vorlesung basiert, also als Referenz.

Screen Shot 2016-01-31 at 2.18.24 AM.png

Recommended Posts

Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
Unterschied zwischen @classmethod und @staticmethod in Python
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse
Über den Unterschied zwischen "==" und "is" in Python
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Unterschied zwischen return, return None und no return description in Python
Unterschied zwischen Ruby und Python Split
Unterschied zwischen Java und Python (Memo)
Unterschied zwischen der Python2-Serie und der Python3-Serie dict.keys ()
[Python] Unterschied zwischen Funktion und Methode
Python - Unterschied zwischen exec und eval
[Python] Unterschied zwischen randrange () und randint ()
[Python] Unterschied zwischen sortiert und sortiert (Colaboratory)
Python-Modul num2words Verhaltensunterschied zwischen Englisch und Russisch
Listenverkettungsmethode in Python, Unterschied zwischen list.extend () und dem Operator "+"
Überlappende reguläre Ausdrücke in Python und Java
Unterschied in der Authentizität zwischen Python und JavaScript
Unterschiede zwischen Ruby und Python im Umfang
Unterschiede zwischen Python- und Java-Syntax
Unterschiede in der Beziehung zwischen PHP und Python schließlich und beenden
[Python] Unterschied zwischen Klassenmethode und statischer Methode
[Python Iroha] Unterschied zwischen Liste und Tupel
[Python] Unterschied zwischen Rand- und Randn-Ausgabe
Unterschiede in der Multithread-Verarbeitung zwischen Python und Jython
Funktion zum Öffnen einer Datei in Python3 (Unterschied zwischen open und codecs.open und Geschwindigkeitsvergleich)
Mehrfacher Regressionsausdruck in Python
Unterschied zwischen Prozess und Job
Unterschied zwischen "categoryical_crossentropy" und "sparse_categorical_crossentropy"
Finde Fehler in Python
Unterschied zwischen Regression und Klassifikation
[Python] Berechnung der Differenz von Datum und Zeit in Monaten und Jahren
Wickeln Sie lange Ausdrücke in Python ein
Stapel und Warteschlange in Python
Gegenseitige Konvertierung zwischen JSON und YAML / TOML in Python
Über Python und reguläre Ausdrücke
Unterschied zwischen np.array und np.arange
Unterschied zwischen MicroPython und CPython
Unittest und CI in Python
Unterschiede beim Schreiben von externem Quellcode zwischen Ruby und Python
Vergleiche "log and infininity" mit Gauche (0.9.4) und Python (3.5.1)
Unterschied zwischen ps a und ps -a
Unterschied zwischen Return und Print-Python
[Python] Erläutert anhand eines Beispiels den Unterschied zwischen strftime und strptime im datetime-Modul
Installieren Sie OpenCV 3 (Core + Contrib) in der Windows- und Python 3-Umgebung. Unterschied zwischen OpenCV 2 und OpenCV 3 und einfache Funktionsprüfung
Python> Unterschied zwischen Inpbt- und Print-Ausgabe (Inpbt)> [1. 2. 3.] / Array ([1., 2., 3.], dtype = float32)
Nützliche Tricks in Bezug auf Listen und Anweisungen in Python
Holen Sie sich das aktuelle Datum und die aktuelle Uhrzeit in Python unter Berücksichtigung des Zeitunterschieds
Python-Tapple-Einschlüsse und Generatorausdrücke
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen SQLAlchemy filter () und filter_by ()
Zeigen Sie Fotos in Python und HTML an
Sortieralgorithmus und Implementierung in Python
Memorandum (Unterschied zwischen csv.reader und csv.dictreader)
Bearbeiten Sie Dateien und Ordner in Python