2012-09-26 2 views
4
를 사용하여 표현과 문장의 차이는 무엇

가능한 중복 :파이썬 수율

표현 및 파이썬에서 의 차이는 무엇
Expression Versus Statement?

I "는 표현으로 사용 수율이"또한

, 당신은 파이썬 발전기의 맥락에서이 문제를 설명 할 수 있다고 말했다 파이썬 생성기를 배우고 때까지 나는이 질문에 생각하지 못했던 것을 '사용 수율 표현 '?

+0

나는 원래 질문의 대답이 거의 쓸모 없도록 충분한 예외가 있음을 확인했다. 나는 ThomasK (아래)가 주어진 대답을 개선으로 봅니다. 이 질문의 제목을 "Python에서 표현식과 statemets의 차이점은 무엇입니까?"로 변경하면 재 개방을 허용하기에 충분합니까? –

+0

@ JS. 당신이 옳다고 생각합니다; 방금 원본 답변을 보았습니다. –

답변

8

. 모든 표현식을 명령문으로 사용할 수도 있습니다.

a = ...을 쓸 수 있다면 다른 식으로 표현하면 ...이 표현식입니다. 따라서 2*3zip(x,y)은 표현식입니다.

raise Exception과 같은 것은 성명이지만 표현식이 아닙니다. a = (raise Exception)을 쓸 수 없습니다.

수율이란 표현식이 b = (yield a)이 생성자에서 유효한 코드임을 의미합니다. 당신이 발전기의 send() 방법을 사용하는 경우, b는 당신이 전달 값으로 설정됩니다

2

표현식에는 식별자, 리터럴 및 연산자가 포함되며 연산자에는 산술 및 부울 연산자, 연산자 operator []와 유사한 연산자가 포함되며 일종의 "값"으로 줄일 수 있습니다. 모든 파이썬 객체가 될 수 있습니다.

한편, 문은 파이썬 코드의 한 줄 (또는 여러 줄)을 구성 할 수있는 모든 것입니다. 표현식도 마찬가지입니다.

은 당신을 도울 것입니다 희망 :) 표현식은 값을 반환하기 위해 평가 될 수있다

+0

해적들이 이제 프로그래밍에 들어가고 있습니다 ... 망할 불황 ....: P – user1655481

+0

당신은 그것을 얻는다! !! – user786

0

내가이 그것을 아래로 증류 것 :.

  • 표현 무언가이다 - 말한 것처럼, 값이 있고
  • 명세서 입니다.

물론 이러한 유형의 모든 문제를 해결할 때주의해야 할 점이 있습니다. 표현은 여전히 ​​평가의 일부로 무언가를 할 수 있습니다. 그러나 결국에는 여전히 가치가 있습니다.