Expressões contêm apenas identificadores , literais e operadores , onde os operadores incluem operadores aritméticos e booleanos, a função de operador de chamada ()
do operador de subscrição []
e semelhantes, e pode ser reduzido a uma espécie de "valor", que pode ser qualquer objeto Python. Exemplos:
3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7
Declarações (consulte 1 ,2 ), por outro lado, são tudo o que pode formar uma linha (ou várias linhas) de código Python. Observe que expressões também são declarações. Exemplos:
# all the above expressions
print 42
if x: do_y()
return
a = 7
print("Hello world!")
oumy_list.append(42)
.a = yield 7
é válido,yield 7
é uma expressão. Há muito tempo,yield
foi introduzido como uma declaração, mas foi generalizado para uma expressão no PEP 342 .Expressão - do New Oxford American Dictionary :
Em termos gerais brutos: as expressões produzem pelo menos um valor.
No Python, as expressões são abordadas extensivamente na Referência da linguagem Python. Em geral, as expressões no Python são compostas por uma combinação sintaticamente legal de átomos , primárias e operadores .
Expressões Python da Wikipedia
Exemplos de expressões:
Literais e combinações sintaticamente corretas com operadores e funções integradas ou a chamada de funções escritas pelo usuário:
Declaração da Wikipedia:
Instruções Python da Wikipedia
Em termos gerais gerais: as declarações fazem alguma coisa e geralmente são compostas por expressões (ou outras declarações)
A Referência da Linguagem Python abrange extensivamente Instruções Simples e Instruções Compostas .
A distinção de "Declarações faz alguma coisa" e "expressões produzem um valor", porém, a distinção pode ficar embaçada:
if
é geralmente uma declaração, tais comoif x<0: x=0
, mas você também pode ter uma expressão condicional , comox=0 if x<0 else 1
que são expressões. Em outros idiomas, como C, esse formulário é chamado de operador como estex=x<0?0:1;
def func(a): return a*a
é uma expressão quando usada, mas composta de instruções quando definida.None
é um procedimento no Python:def proc(): pass
sintaticamente, você pode usarproc()
como expressão, mas isso provavelmente é um bug ...func(x=2);
uma expressão ou declaração? ( Resposta: Expressão usada como uma declaração com efeito colateral. ) A declaração de atribuiçãox=2
dentro da chamada de função defunc(x=2)
no Python define o argumento nomeadoa
como 2 somente na chamadafunc
e é mais limitado que o exemplo C.fonte
Embora isso não esteja relacionado ao Python:
Um
expression
avalia para um valor. Astatement
faz alguma coisa.fonte
somelist.append(123)
,. A maioria das chamadas de função, na verdade.Instruções representam uma ação ou comando, por exemplo , instruções de impressão, instruções de atribuição.
Expressão é uma combinação de variáveis, operações e valores que produz um valor de resultado.
Por fim, instruções de expressão
fonte
Uma expressão é algo que pode ser reduzido a um valor, por exemplo
"1+3"
ou"foo = 1+3"
.É fácil verificar:
Se não funcionar, é uma declaração, se funcionar, é uma expressão.
Outra afirmação poderia ser:
pois não pode ser reduzido a um valor.
fonte
a = b = expr
é permitido, como um caso especial) em Python. Nas linguagens que extraem mais inspiração de C, é.class Foo(bar):
é o começo de uma declaração, não uma declaração completa.foo = 1+3
NÃO é uma expressão. É uma declaração (uma tarefa para ser mais preciso). A parte1+3
é uma expressão embora.fonte
Uma expressão é alguma coisa, enquanto uma declaração faz alguma coisa.
Uma expressão também é uma declaração, mas deve ter um retorno.
PS: O intérprete sempre imprime os valores de todas as expressões.
fonte
DECLARAÇÃO:
Uma declaração é uma ação ou um comando que faz alguma coisa. Ex: If-Else, Loops..etc
EXPRESSÃO:
Uma expressão é uma combinação de valores, operadores e literais que produz algo.
fonte
Uma declaração contém uma palavra-chave.
Uma expressão não contém uma palavra-chave.
print "hello"
é uma instrução, porqueprint
é uma palavra-chave."hello"
é uma expressão, mas a compactação de lista é contra isso.A seguir, uma declaração de expressão e é verdadeira sem compreensão da lista:
fonte
x = 1
é uma afirmação perfeitamente correta, mas não contém palavras-chave.is
é uma palavra-chave, masx is y
não é necessariamente uma declaração (em geral, é apenas uma expressão).Expressões:
objects
eoperators
.<object><operator><object>
2.0 + 3
é uma expressão que é avaliada5.0
e tem um tipofloat
associado a ela.Afirmações
As instruções são compostas de expressão (s). Pode abranger várias linhas.
fonte
Existem algumas instruções que podem mudar o estado do nosso programa Python: criar ou atualizar variáveis, definir funções, etc.
E expressões apenas retornam algum valor não podem alterar o estado global ou local em uma função.
Mas agora temos
:=
, é um alienígena!fonte
O Python chama expressões "declarações de expressão", portanto a questão talvez não esteja totalmente formada.
Uma instrução consiste em praticamente tudo o que você pode fazer no Python: calcular um valor, atribuir um valor, excluir uma variável, imprimir um valor, retornar uma função, gerar uma exceção etc. A lista completa está aqui: http: // docs.python.org/reference/simple_stmts.html#
Uma declaração de expressão é limitada a chamar funções (por exemplo, math.cos (theta) "), operadores (por exemplo," 2 + 3 ") etc. para produzir um valor.
fonte
Eu acho que uma expressão contém operadores + operandos e o objeto que contém o resultado da operação ... por exemplo
mas uma instrução é simplesmente uma linha de um código (pode ser uma expressão) ou bloco de código ... por exemplo
}
fonte