Pythonでは、式と文の違いは何ですか?
式 に含まれるのは 識別子 、 リテラル および 演算子 、演算子には算術演算子およびブール演算子が含まれます。関数 call operator()
the subscription operator[]
などで、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
式 - 私の辞書から:
式:数学量を共同で表す記号の集まり。円周の式は2πrです。
一般的な用語では、式は少なくとも1つの値を生成します。
Pythonでは、式は広範囲にカバーされています Python言語リファレンス 一般に、Pythonの式は構文的に有効な Atoms 、 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
ウィキペディアからの声明:
コンピュータプログラミングでは、ステートメントは命令型プログラミング言語の最小の独立した要素と考えることができます。プログラムは、一連の1つ以上のステートメントによって形成されます。ステートメントは内部構成要素(例えば式)を持つことになる。
一般的な用語では、ステートメントは何かを行い、多くの場合は式(または他のステートメント)で構成されます。
Python言語リファレンスは Simple Statements と Compound Statements を広範囲にカバーしています。
「文は何かをする」と「表現は価値を生み出す」の区別はあいまいになる可能性があります。
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);
を持つことができますそれは式またはステートメントですか? ( Answer:副作用のあるステートメントとして使用されている式です。 )func(x=2)
という形式はPythonでは無効です(または少なくともfunc(a=3)
は別の意味を持ち、名前付き引数a
を3に設定します)これはPythonとは関係ありませんが。
expression
は値に評価されます。 statement
は何かをします。
>>> x = 1
>>> y = x + 1 # an expression
>>> print y # a statement (in 2.x)
2
ステートメントはアクションやコマンドを表します。例えばprintステートメント、assignmentステートメント
print 'hello', x = 1
式は、結果値を生成する変数、演算、および値の組み合わせです。
5 * 5 # yields 25
最後に、式文
print 5*5
式は、"1+3"
や"foo = 1+3"
のように、値に減らすことができるものです。
確認は簡単です。
print foo = 1+3
うまくいかなければそれはステートメントであり、そうであればそれは式です。
別のステートメントは次のようになります。
class Foo(Bar): pass
値にすることはできませんので。
式は何かですが、文は何かをします。
式も文ですが、戻り値が必要です。
>>> 2 * 2 #expression
>>> print(2 * 2) #statement
PS:インタプリタは常にすべての式の値を表示します。
ステートメント:
ステートメントは、何かをするアクションまたはコマンドです。例:If-Else、ループ...など
val a: Int = 5
If(a>5) print("Hey!") else print("Hi!")
式:
式は、値、演算子、リテラルを組み合わせたもので、何かを生み出します。
val a: Int = 5 + 5 #yields 10
式:
objects
とoperators
を組み合わせて形成されます。<object><operator><object>
2.0 + 3
は、5.0
に評価される式で、それに関連付けられたタイプfloat
を持ちます。
ステートメント
文は式で構成されています。複数行にまたがることができます。
ステートメントにキーワードが含まれています。
式にキーワードが含まれていません。
print
はキーワードであるため、print "hello"
はステートメントです。
"hello"
は式ですが、リスト圧縮はこれに反対です。
以下は式文であり、リスト内包表記がなくても当てはまります。
(x*2 for x in range(10))
簡単に言うと、ステートメントは1つ以上の式で構成され、式は1つ以上の識別子(名前)、リテラル、および演算子で構成されます。