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 ... ~~
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. :Deval( "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".
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.
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.
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.
Recommended Posts