5

Java プロジェクトの 1 つを Python に変換しようとしていますが、特定の行で問題が発生しています。Java コードは次のとおりです。

if (++j == 9)
    return true;

これがPythonであると思われるのは

if (j += 1) ==9:
        return True

...しかし、エラーが発生していますSyntaxError: invalid syntax

このJavaをPythonに変換するにはどうすればよいですか?

4

6 に答える 6

13

はい、それは確かに構文エラーです。

あなたはおそらく欲しい:

j += 1
if j == 9:
  return True

その理由は、python ではキーワード ( docs )の後にが必要であるのに対して、ステートメントであるからです。 ifj += 1


おめでとう、あなたは弾丸をかわしました - それを翻訳しないことで:

if (++j == 9):
    return True

これは有効な python コードであり、ほぼ間違いなくバグです!

于 2013-02-27T06:53:46.077 に答える
1

Python には++演算子がないため、2 行に分割してください。

j += 1
if j == 9:
  return True

wim が指摘したように、if文には True または False の値に評価されるものが必要です。Java では、++j比較の前にその部分が評価されます。次に、新しいj値が比較され、真または偽の式になります。

于 2013-02-27T06:53:41.377 に答える
0

++ 演算子は Python には存在しません。代わりに、次のことができます。

j += 1
if j == 9:
    return True
于 2013-02-27T06:53:38.453 に答える
0

+= 演算子は代入演算子です。代入演算子は、条件ステートメントとは別に実行する必要があります。次のようにコードを実行する必要があります。

j+=1
if j==9:
   return True
于 2013-02-27T06:54:03.417 に答える
0
  • ++Python には(または--) 演算子はありません。
  • j += 1値を返さないため、比較するものはありません。

あなたが望むように見えます:

if j == 8:
    return True

jである場合global(通常は眉をひそめます)、次のようになります。

j += 1
if j == 9:
    return True
于 2013-02-27T06:54:22.310 に答える
0

j += 1と同等j = j + 1です。実際には値を返すのではなく、変数を上書きするだけですj。if を見たいと思っているj + 1 == 9ので、次のように置き換えます。

if (j += 1) ==9:
    return True

と:

j += 1
if j == 9:
    return True
于 2013-02-27T06:55:25.433 に答える