1

重複の可能性:
Python:インクリメントおよびデクリメント演算子の動作

>>> a=2
>>> ++a
2
>>> a++
Traceback (  File "<interactive input>", line 1
    a++
      ^
SyntaxError: invalid syntax
>>> ++a
2

なぜ++xは大丈夫ですか?

(職場の誰かが習慣的に++ iを書いたので、私は尋ねています。これは(習慣的に)期待どおりには機能しませんでしたが、エラーもスローしなかったため、バグを見つけるのに時間がかかりました。)

4

3 に答える 3

8

これは+(+a)、つまり、の意味とは反対の意味です-(-a)(ただし、この場合は明らかに結果は同じです!)

http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complexを参照してください。

于 2012-06-26T14:47:01.580 に答える
3

これは次と同等です+(+a)

>>> +-2
-2
>>> -+2
-2
>>> --2
2
>>> ++++-2
-2
于 2012-06-26T14:48:52.760 に答える
1

Pythonの重複の可能性:インクリメントおよびデクリメント演算子の動作

オペレーターの正確な理由についてのドキュメントは見つかりませんが、リンクされた質問で受け入れられた回答の一部を引用します。

  • よりシンプルな言語。++は+=1の同義語にすぎません。Cコンパイラは愚かで、ほとんどのコンピュータが持っているinc命令に+ = 1を最適化する方法を知らなかったため、これは省略形で発明されました。コンパイラとバイトコード解釈言語を最適化する今日では、プログラマー
    がコードを最適化できるように言語に演算子を追加することは、特に一貫性があり読みやすいように設計されたPythonのような言語では、通常は嫌われます。
于 2012-06-26T14:48:49.960 に答える