2012-09-26 34 views
4
表達和陳述之間的區別

可能重複:
Expression Versus Statement什麼是用Python產量

什麼表達和Python中聲明之間的區別?

,直到我學習Python的發電機,上面寫着「使用,收率爲表達

而且,你能在Python發電機中說明這個問題我從來沒有想過這個問題是「使用產量爲一種表達'?

+0

我發現原始問題的答案痘痕標記有足夠的例外幾乎是無用的。我認爲ThomasK(下文)給出的答案是一種改進。如果將這個問題的標題改爲「Python中的表達式和語句之間有什麼區別」就足以允許重新打開? –

+0

@ JS.I認爲你是對的;我剛看到原來的答案。 –

回答

8

表達式可以通過計算返回的值。任何表達式也可以用作語句。換句話說,如果你可以寫a = ...,那麼...就是一個表達式。所以2*3zip(x,y)是表達式。

類似於raise Exception是一個陳述,但不是一個表達式:你不能寫a = (raise Exception)

yield是一個表達意味着b = (yield a)是生成器中的有效代碼。如果您使用發電機的send()方法,b設置爲你傳遞值

2

表達式只包含標識符,文字和運算符,其中操作符包括算術和布爾運算符,函數調用操作者()訂閱操作符[]和類似的,並且可以減小到某種「價值」的,這可以是任何Python對象。

聲明另一方面是可以組成一行(或幾行)Python代碼的所有東西。請注意,表達式也是語句。

希望它會幫助你:)

+0

所以海盜現在進入編程...該死的經濟衰退....:P – user1655481

+0

你明白了! – user786

0

我提煉它歸結爲這樣:

  • 表達東西 - 正如人們所說的,它有一個值 - 和
  • 一個聲明確實東西。

當然,這種所有減少的問題是,有一個警告;作爲評估的一部分,表達可能仍然會有所作爲。但它最終還是有價值的。