Відповіді:
Вирази містять тільки ідентифікатори , літерали і оператор , коли оператори включають арифметичні і логічні оператор, функції оператор виклику в оператора і подібний, і можуть бути зведені до якого - то «цінності», який може бути будь-яким об'єктом 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
print("Hello world!")
або my_list.append(42)
.
a = yield 7
діє, yield 7
є виразом. Давним-давно yield
було введено як твердження, але воно було узагальнено до виразу в PEP 342 .
Вираз - із американського словника в Нью-Оксфорді :
вираз: Математика - це сукупність символів, які спільно виражають величину: вираз для окружності кола - 2πr.
У загальному вираженні: вирази дають хоча б одне значення.
У 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()
як вираз, але це, ймовірно, помилка ...func(x=2);
Це вираз чи вислів? ( Відповідь: Вираз, що використовується як оператор із побічним ефектом. ) Заява про присвоєння x=2
внутрішньої частини виклику функції func(x=2)
в Python встановлює іменний аргумент a
на 2 лише у виклику func
та є більш обмеженим, ніж приклад C.Хоча це не пов’язано з Python:
expression
Обчислюється в якості значення. А statement
щось робить.
>>> x + 2 # an expression
>>> x = 1 # a statement
>>> y = x + 1 # a statement
>>> print y # a statement (in 2.x)
2
somelist.append(123)
. Дійсно, більшість функціональних дзвінків.
Виписки являють собою дію або команду, наприклад, друковані заяви, заяви про призначення.
print 'hello', x = 1
Вираз - це поєднання змінних, операцій та значень, що дає значення результату.
5 * 5 # yields 25
Нарешті, висловлювання
print 5*5
Вираз - це те, що можна звести до значення, наприклад, "1+3"
або "foo = 1+3"
.
Це легко перевірити:
print foo = 1+3
Якщо це не працює, це твердження, якщо воно є, це вираз.
Ще одним твердженням може бути:
class Foo(Bar): pass
оскільки його не можна звести до значення.
a = b = expr
дозволено, як особливий випадок) в Python. У мовах, що черпають більше натхнення від С, це так.
class Foo(bar):
це початок заяви, а не повне твердження.
foo = 1+3
НЕ є виразом. Це твердження (завдання, щоб бути точним). Частина 1+3
- це вираз.
Вираз - це щось, тоді як твердження щось робить.
Вираз є також твердженням, але він повинен мати зворот.
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
PS: Інтерпретатор завжди виводить значення всіх виразів.
ЗАЯВЛЕННЯ:
Заява - це дія чи команда, яка щось робить. Наприклад: If-Else, Loops..etc
val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")
ВИСНОВКА:
Вираз - це комбінація значень, операторів і літералів, яка щось дає.
val a: Int = 5 + 5 #yields 10
Заява містить ключове слово.
Вираз не містить ключового слова.
print "hello"
є оператором, тому що print
це ключове слово.
"hello"
є виразом, але стиснення списку проти цього.
Далі йде вираз висловлювання, і це правда без розуміння списку:
(x*2 for x in range(10))
x = 1
є ідеально виразним твердженням, але не містить ключових слів.
is
, це ключове слово, але x is y
це не обов'язково вислів (загалом це лише вираз).
Є деякі заяви, які можуть змінити стан нашої програми Python: створити або оновити змінні, визначити функцію тощо.
І вирази просто повертають деяке значення, не можуть змінити глобальний стан або локальний стан у функції.
Але тепер ми дісталися :=
, це іноземець!
Python називає вирази "висловленнями виразів", тому питання, можливо, не сформовано повністю.
Заява складається з майже всього, що ви можете зробити в Python: обчислити значення, призначити значення, видалити змінну, роздрукувати значення, повернутися з функції, підняти виняток тощо. Повний список тут: http: // docs.python.org/reference/simple_stmts.html#
Заява виразів обмежується функціями виклику (наприклад, math.cos (theta) "), операторами (наприклад," 2 + 3 ") тощо для отримання значення.
Я думаю, що вираз містить оператори + операнди та об'єкт, який містить результат операції ... наприклад
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
}