В чем разница между выражением и утверждением в Python? - PullRequest
280 голосов
/ 18 января 2011

В Python, в чем разница между выражениями и операторами?

Ответы [ 12 ]

213 голосов
/ 18 января 2011

Выражения содержат только идентификаторы , литералы и операторы , где операторы включают арифметические и логические операторы, функция вызывать оператор () оператор подписки [] и аналогичный, и может быть уменьшен до некоторого вида "значения", которым может быть любой объект Python. Примеры:

3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7

Заявления (см. 1 , 2 ), с другой стороны, являются всем, что может составлять линию (или несколько строк) кода Python. Обратите внимание, что выражения также являются утверждениями. Примеры:

# all the above expressions
print 42
if x: do_y()
return
a = 7
105 голосов
/ 19 января 2011

Выражение - из моего словаря:

выражение: Математика коллекция символов, которые совместно выражают количество: выражение для длина окружности 2р.

В общих чертах: Выражения дают хотя бы одно значение.

В Python выражения подробно описаны в Справочник по языку Python В общем, выражения в Python состоят из синтаксически допустимой комбинации Атомов , Первичных и Операторы .

Выражения Python из Википедии

Примеры выражений:

Литералы и синтаксически правильные комбинации с Операторами и встроенными функциями или вызовом пользовательских функций:

>>> 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

Заявление из Википедии:

В компьютерном программировании утверждение можно считать самым маленьким автономный элемент императива язык программирования. Программа образованный последовательностью из одного или нескольких заявления. Заявление будет иметь внутренние компоненты (например, выражения).

Заявления Python из Википедии

В общих чертах: Заявления что-то делают и часто состоят из выражений (или других утверждений)

Справочник по языку Python охватывает Простые операторы и Составные операторы .

Различие между «заявлениями делать что-то» и «выражениями порождает ценность», однако может стать размытым:

  • Понимания списка считаются «выражениями», но они имеют циклические конструкции и поэтому также делают что-то.
  • if обычно является оператором, таким как if x<0: x=0, но вы также можете иметь условное выражение подобно x=0 if x<0 else 1, которое является выражением. В других языках, таких как C, эта форма называется оператором, подобным этому x=x<0?0:1;
  • Вы можете написать свои собственные выражения, написав функцию. def func(a): return a*a - это выражение, когда оно используется, но состоит из операторов, когда оно определено.
  • Выражение, которое возвращает None, является процедурой в Python: def proc(): pass Синтаксически, вы можете использовать proc() в качестве выражения, но это, вероятно, ошибка ...
  • Python немного более строг, чем, скажем, C относительно различий между Expression и Statement. В C любое выражение является юридическим утверждением. Вы можете иметь func(x=2); Это выражение или утверждение? ( Ответ: Выражение, используемое в качестве оператора с побочным эффектом. ) Форма func(x=2) недопустима в Python (или, по крайней мере, имеет другое значение func(a=3) устанавливает именованный аргумент a в 3)
62 голосов
/ 18 января 2011

Хотя это не относится к Python:

Значение expression оценивается как значение. A statement что-то делает.

>>> x = 1
>>> y = x + 1     # an expression
>>> print y       # a statement (in 2.x)
2
9 голосов
/ 10 апреля 2015

Выражения представляют действие или команду, например, операторы печати, операторы присваивания.

print 'hello', x = 1

Выражение - это комбинация переменных, операций и значений, которая дает значение результата.

5 * 5 # yields 25

Наконец, выражения выражения

print 5*5
4 голосов
/ 03 января 2018
  1. Выражение - это оператор, который возвращает значение. Поэтому, если оно может появиться в правой части присваивания или в качестве параметра для вызова метода, это выражение.
  2. Некоторый код может быть как выражением, так и выражением, в зависимости от контекста. У языка могут быть средства различения между ними, когда они неоднозначны.
3 голосов
/ 18 октября 2017

Выражение - это что-то, а выражение - что-то.
Выражение также является оператором, но оно должно иметь возврат.

>>> 2 * 2          #expression
>>> print(2 * 2)     #statement

PS: интерпретатор всегда печатает значения всех выражений.

3 голосов
/ 18 января 2011

Выражение - это то, что можно уменьшить до значения, например, "1+3" или "foo = 1+3".

. Это легко проверить:

print foo = 1+3

Если это не такработа, это утверждение, если это так, это выражение.

Другое утверждение может быть:

class Foo(Bar): pass

, поскольку его нельзя уменьшить до значения.

1 голос
/ 09 марта 2019

ЗАЯВЛЕНИЕ:

Оператор - это действие или команда, которая что-то делает. Пример: If-Else, Loops..etc

val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")

СЛОВА:

Выражение - это комбинация значений, операторов и литералов, которая что-то дает.

val a: Int = 5 + 5 #yields 10
0 голосов
/ 23 августа 2017

Выражения:

  • Выражения формируются путем объединения objects и operators.
  • Выражение имеет значение, которое имеет тип.
  • Синтаксис для простого выражения: <object><operator><object>

2.0 + 3 - это выражение, которое оценивается как 5.0 и имеет связанный с ним тип float.

Заявления

Заявления состоят из выражений. Может занимать несколько строк.

0 голосов
/ 27 июля 2017

Я думаю, что выражение содержит операторы + операнды и объект, который содержит результат операции ... например,

var sum = a + b;

, но оператор - это просто строка кода (это может быть выражение) или блок кода ... например

fun printHello(name: String?): Unit {
if (name != null)
    println("Hello ${name}")
else
    println("Hi there!")
// `return Unit` or `return` is optional

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...