Risposte:
Espressioni contengono solo identificatori , letterali e operatori , in cui gli operatori includono operatori aritmetici e booleani, la funzione di operatore di chiamata ()
del operatore sottoscrizione []
e simili, e possono essere ridotti a una sorta di "valore", che può essere qualsiasi oggetto Python. Esempi:
3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7
Dichiarazioni (vedi 1 ,2 ), d'altra parte, sono tutto ciò che può costituire una riga (o più righe) di codice Python. Nota che anche le espressioni sono dichiarazioni. Esempi:
# all the above expressions
print 42
if x: do_y()
return
a = 7
print("Hello world!")
o my_list.append(42)
.
a = yield 7
è valido, yield 7
è un'espressione. Molto tempo fa, è yield
stato introdotto come una dichiarazione, ma è stato generalizzato a un'espressione in PEP 342 .
Espressione - dal nuovo dizionario americano di Oxford :
espressione: matematica una raccolta di simboli che esprimono congiuntamente una quantità: l'espressione per la circonferenza di un cerchio è 2πr.
In termini generali lordi: le espressioni producono almeno un valore.
In Python, le espressioni sono ampiamente trattate nel riferimento al linguaggio Python In generale, le espressioni in Python sono composte da una combinazione sintatticamente legale di atomi , primarie e operatori .
Espressioni Python da Wikipedia
Esempi di espressioni:
Letterali e combinazioni sintatticamente corrette con gli operatori e le funzioni integrate o il richiamo di funzioni scritte dall'utente:
>>> 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
Dichiarazione di Wikipedia:
Nella programmazione del computer un'affermazione può essere considerata come il più piccolo elemento autonomo di un linguaggio di programmazione imperativo. Un programma è formato da una sequenza di una o più istruzioni. Un'istruzione avrà componenti interni (ad esempio espressioni).
Dichiarazioni Python da Wikipedia
In termini generali grossolani: le dichiarazioni fanno qualcosa e sono spesso composte da espressioni (o altre dichiarazioni)
Il Python Language Reference copre ampiamente le istruzioni semplici e le istruzioni composte .
La distinzione di "Dichiarazioni fa qualcosa" e "espressioni producono un valore", tuttavia la distinzione può diventare sfocata:
if
solito è un'affermazione, come if x<0: x=0
ma puoi anche avere un'espressione condizionale come x=0 if x<0 else 1
quella sono espressioni. In altre lingue, come C, questo modulo è chiamato un operatore come questox=x<0?0:1;
def func(a): return a*a
è un'espressione quando utilizzata ma composta da istruzioni quando definita.None
è una procedura in Python: def proc(): pass
sintatticamente, puoi usarla proc()
come espressione, ma probabilmente è un bug ...func(x=2);
Espressione o dichiarazione? ( Risposta: espressione utilizzata come istruzione con un effetto collaterale. ) L'istruzione di assegnazione x=2
all'interno della chiamata di funzione di func(x=2)
in Python imposta l'argomento denominato a
su 2 solo nella chiamata a func
ed è più limitata dell'esempio C.Anche se questo non è correlato a Python:
Un expression
valuta un valore. A statement
fa qualcosa.
>>> 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 maggior parte delle chiamate di funzione, davvero.
Le dichiarazioni rappresentano un'azione o un comando, ad esempio istruzioni di stampa, istruzioni di assegnazione.
print 'hello', x = 1
L'espressione è una combinazione di variabili, operazioni e valori che produce un valore risultato.
5 * 5 # yields 25
Infine, dichiarazioni di espressione
print 5*5
Un'espressione è qualcosa che può essere ridotta a un valore, ad esempio "1+3"
o "foo = 1+3"
.
È facile controllare:
print foo = 1+3
Se non funziona, è un'affermazione, se funziona, è un'espressione.
Un'altra affermazione potrebbe essere:
class Foo(Bar): pass
in quanto non può essere ridotto a un valore.
a = b = expr
è consentita, come un caso speciale) in Python. In lingue che traggono maggiore ispirazione da C, lo è.
class Foo(bar):
è l'inizio di un'affermazione, non un'affermazione completa.
foo = 1+3
NON è un'espressione. È un'affermazione (un incarico per essere precisi). La parte 1+3
è un'espressione però.
Un'espressione è qualcosa, mentre un'affermazione fa qualcosa.
Anche un'espressione è un'affermazione, ma deve avere un ritorno.
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
PS: l'interprete stampa sempre i valori di tutte le espressioni.
DICHIARAZIONE:
Un'istruzione è un'azione o un comando che fa qualcosa. Es: If-Else, Loops..etc
val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")
ESPRESSIONE:
Un'espressione è una combinazione di valori, operatori e valori letterali che produce qualcosa.
val a: Int = 5 + 5 #yields 10
Un'istruzione contiene una parola chiave.
Un'espressione non contiene una parola chiave.
print "hello"
è un'istruzione, perché print
è una parola chiave.
"hello"
è un'espressione, ma la compressione dell'elenco è contro questo.
Quanto segue è una dichiarazione di espressione ed è vera senza la comprensione dell'elenco:
(x*2 for x in range(10))
x = 1
è una dichiarazione perfettamente valida, ma non contiene parole chiave.
is
è una parola chiave ma x is y
non è necessariamente un'affermazione (in generale è solo un'espressione).
espressioni:
objects
e operators
.<object><operator><object>
2.0 + 3
è un'espressione che valuta 5.0
e ha un tipo float
associato.
dichiarazioni
Le dichiarazioni sono composte da espressioni. Può estendersi su più righe.
Ci sono alcune affermazioni che potrebbero cambiare lo stato del nostro programma Python: creare o aggiornare variabili, definire funzioni, ecc.
E le espressioni restituiscono solo un valore che non può cambiare lo stato globale o lo stato locale in una funzione.
Ma ora abbiamo :=
, è un alieno!
Python chiama le espressioni "dichiarazioni di espressione", quindi la domanda forse non è del tutto formata.
Un'istruzione è composta praticamente da tutto ciò che puoi fare in Python: calcolare un valore, assegnare un valore, eliminare una variabile, stampare un valore, tornare da una funzione, sollevare un'eccezione, ecc. L'elenco completo è qui: http: // docs.python.org/reference/simple_stmts.html#
Un'istruzione expression è limitata alle funzioni di chiamata (ad es. Math.cos (theta) "), agli operatori (ad es." 2 + 3 "), ecc. Per produrre un valore.
Penso che un'espressione contenga operatori + operandi e l'oggetto che contiene il risultato dell'operazione ... ad es
var sum = a + b;
ma un'istruzione è semplicemente una riga di un codice (può essere un'espressione) o un blocco di codice ... ad es
fun printHello(name: String?): Unit {
if (name != null)
println("Hello ${name}")
else
println("Hi there!")
// `return Unit` or `return` is optional
}