31

Python は式をどのように評価します1+++2か?

+間にいくつ入れたか3、答えとして印刷しています。誰でもこの動作を説明できますか

そして、1--2それは印刷3であり、1---2それは印刷です-1

4

6 に答える 6

63

あなたの表現は次と同じです:

1+(+(+2))

数値式の前に-を付けて、負にしたり+、何もしないようにすることができます (このオプションは対称性のために存在します)。負の符号がある場合:

1-(-(2)) = 1-(-2)
         = 1+2
         = 3

1-(-(-2)) = 1-(2)
          = -1

あなたはCのバックグラウンドから来たと言うためにあなたの質問を明確にしたようです。Python には、C の++やのようなインクリメント演算子はありません--。これがおそらく混乱の原因でした。変数をインクリメントまたはデクリメントするijは、Python で次のスタイルを使用します。

i += 1
j -= 1
于 2009-01-22T17:46:08.390 に答える
15

余分な + はインクリメンターではありません (c++ の ++a や a++ など)。数値が正であることを示しているだけです。

そのような ++ 演算子はありません。ただし、単項 + 演算子と単項 - 演算子があります。単項 + 演算子は、その引数に影響を与えません。単項 - 演算子は、その演算子を否定するか、-1 で乗算します。

+1

-> 1

++1

-> 1

これは +(+(1)) と同じです

   1+++2

-> 3 1 + (+(+(2)) と同じだから

同様に、+1 である - (-1) を意味する --1 を実行できます。

  --1

-> 1

完全を期すために、 * 単項演算子はありません。したがって、*1 はエラーです。しかし、べき乗である ** 演算子があり、2 つの引数を取ります。

 2**3

-> 8

于 2009-01-22T17:47:04.330 に答える
4

1+(+(+2)) = 3

1 - (-2) = 3

1 - (-(-2)) = -1

于 2009-01-22T17:46:22.977 に答える
4

単項プラスと単項マイナスを試す:

単項 - (マイナス) 演算子は、その数値引数の否定を生成します。

単項 + (プラス) 演算子は、その数値引数を変更せずに生成します。

>>> +2
2
>>> ++2
2
>>> +++2
2
>>> -2
-2
>>> --2
2
>>> ---2
-2
>>> 1+(++2)
3
于 2009-01-22T17:47:47.903 に答える
1

1 + (+1*(+1*2)))と考えてください。最初の + は演算子で、次のプラス記号は第 2 オペランド (= 2) の符号です。

1---2 は 1 - -(-(2)) または 1- (-1*(-1*(2)) と同じです

于 2009-01-22T17:47:08.230 に答える
1

最初の + は 2 項演算 (加算) として解析され、残りは単項演算 (正にする) として解析されていると思います。

 1 + (+(+2))
于 2009-01-22T17:47:36.030 に答える