我想將我的一個Java項目翻譯成Python,並且遇到了某個特定行的問題。 Java代碼是:++我在Python中的運算符
if (++j == 9)
return true;
我想這應該是在巨蟒
if (j += 1) ==9:
return True
...但我得到一個錯誤SyntaxError: invalid syntax
。
如何將此Java轉換爲Python?
我想將我的一個Java項目翻譯成Python,並且遇到了某個特定行的問題。 Java代碼是:++我在Python中的運算符
if (++j == 9)
return true;
我想這應該是在巨蟒
if (j += 1) ==9:
return True
...但我得到一個錯誤SyntaxError: invalid syntax
。
如何將此Java轉換爲Python?
是的,這確實是一個語法錯誤。
你可能想:
j += 1
if j == 9:
return True
的原因是因爲Python需要if
關鍵字(docs)後表達,而j += 1
是聲明。
,恭喜你,你剛剛逃過了一劫 - 由它不翻譯成:
if (++j == 9):
return True
這是有效的Python代碼,並且幾乎肯定會是一個錯誤!
++運算符在Python中不存在。相反,你可以這樣做:
j += 1
if j == 9:
return True
回報是不等價的。 – wim 2013-02-27 06:54:06
這將不會執行'if'後的任何代碼(可能)。 – 2013-02-27 06:55:21
正確,我已經相應地改變了它。 – 2013-02-27 06:55:43
把它分成兩行,因爲Python沒有++
運算符。
j += 1
if j == 9:
return True
由於WIM指出,和if
語句需要的東西,計算結果爲true或false值。在Java中,++j
部分將在比較之前進行評估。然後,新的值將被比較,從而導致真實或錯誤的表達。
+ =運算符是賦值運算符。賦值運算符需要與條件語句分開運行。您應該運行這樣的代碼:
j+=1
if j==9:
return True
++
(或--
)運營商。j += 1
不返回一個值,所以沒有什麼可比較的。它看起來像你想:
if j == 8:
return True
如果j
是global
(通常是令人難以接受的),則:
j += 1
if j == 9:
return True
j += 1
相當於j = j + 1
。它實際上並不返回一個值,而只是覆蓋變量j
。我假設你想看看j + 1 == 9
,所以更換:
if (j += 1) ==9:
return True
有了:
j += 1
if j == 9:
return True
希望沒有人會在這樣的if中使用括號:) – squiguy 2013-02-27 07:06:05
對於有效的Python代碼示例,它不會執行一個新的Python程序員可能會期望的事情(我幾年前被捕獲)。 – Johnsyweb 2013-02-27 07:35:53