重複の可能性:
式とステートメント
Pythonの式とステートメントの違いは何ですか?
「 yieldを式として使用する」というPythonジェネレーターを学ぶまで、この質問について考えたことはありません。
また、「yieldを式として使用する」というPythonジェネレーターのコンテキストでこの質問を説明できますか?
式を評価して値を返すことができます。任意の式をステートメントとして使用することもできます。
言い換えれば、あなたが書くことができればa = ...、それ...は式です。だから2*3とzip(x,y)は表現です。
のようなものraise Exceptionはステートメントですが、式ではありません。を書くことはできませんa = (raise Exception)。
式であるyieldはb = (yield a)、ジェネレーターで有効なコードであることを意味します。ジェネレータのsend()メソッドを使用する場合、bは渡した値に設定されます。
式には、識別子、リテラル、演算子のみが含まれます。演算子には、算術演算子とブール演算子、関数呼び出し演算子()、サブスクリプション演算子[]などが含まれ、任意のPythonオブジェクトであるある種の「値」に減らすことができます。
一方、ステートメント は、Pythonコードの1行(または数行)を構成できるすべてのものです。式もステートメントであることに注意してください。
それがあなたを助けることを願っています:)
私はそれを次のように要約します:
もちろん、この種の削減には注意点があります。式は、その評価の一部として何かを行う場合があります。しかし、それでも最終的には価値があります。