답변:
표현식 에는 식별자 , 리터럴 및 연산자 만 포함 됩니다 . 연산자에는 산술 및 부울 연산자, 함수 호출 연산자 ()
에는 구독 연산자 []
등이 포함되어 있으며 어떤 종류의 "값"(모든 Python 객체 일 수 있음)으로 줄일 수 있습니다. 예 :
3 + 5
map(lambda x: x*x, range(10))
[a.x for a in some_iterable]
yield 7
성명서 (참조 1 ,반면에 2 )는 한 줄 (또는 여러 줄)의 파이썬 코드를 구성 할 수있는 모든 것입니다. 표현식도 문장입니다. 예 :
# 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입니다.
총체적인 용어로 표현하면 하나 이상의 값이 생성됩니다.
파이썬에서, 표현식은 파이썬 언어 레퍼런스 에서 광범위하게 다루어집니다 . 일반적으로, 파이썬에서의 표현식은 문법적으로 합법적으로 Atom , Primaries 및 Operators 조합으로 구성 됩니다.
표현의 예 :
연산자 및 내장 함수 또는 사용자 작성 함수 호출과의 리터럴 및 구문 상 올바른 조합 :
>>> 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
Wikipedia의 진술 :
컴퓨터 프로그래밍에서 문장은 명령형 프로그래밍 언어의 가장 작은 독립형 요소로 생각할 수 있습니다. 프로그램은 하나 이상의 명령문으로 구성됩니다. 명령문에는 내부 구성 요소 (예 : 표현식)가 있습니다.
총체적인 용어로 : 진술은 무언가를 하고 종종 표현 (또는 다른 진술)으로 구성됩니다
파이썬 언어 레퍼런스는 간단한 문장 과 복합 문장을 광범위하게 다루고 있습니다.
"표현은 무언가를한다"와 "표현은 가치를 만들어 낸다"는 구별은 모호해질 수있다.
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)
명명 된 인수 a
를 2로 설정 func
하고 C 예제보다 제한됩니다.이것은 파이썬과 관련이 없지만 :
는 expression
값으로 평가한다. A 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
특별한 경우로 허용 되지 는 않습니다). C에서 더 많은 영감을 얻는 언어에서는 그렇습니다.
class Foo(bar):
완전한 진술이 아니라 진술의 시작입니다.
foo = 1+3
식이 아닙니다. 성명서 (정확한 과제)입니다. 그 부분 1+3
은 표현입니다.
성명서:
명령문은 작업을 수행하는 작업 또는 명령입니다. 예 : If-Else, Loops..etc
val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")
표현:
Expression은 값, 연산자 및 리터럴의 조합으로 무언가를 산출합니다.
val a: Int = 5 + 5 #yields 10
파이썬은 표현식을 "표현 문 (expression statement)"이라고 부릅니다.
명령문은 파이썬에서 할 수있는 모든 것, 즉 값 계산, 값 할당, 변수 삭제, 값 인쇄, 함수에서 반환, 예외 발생 등으로 구성됩니다. 전체 목록은 다음과 같습니다. http : // docs.python.org/reference/simple_stmts.html#
표현 문은 값을 생성하기 위해 함수 (예 : math.cos (theta) "), 연산자 (예 :"2 + 3 ") 등을 호출하는 것으로 제한됩니다.