5

我正在尝试将我的一个 Java 项目翻译成 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 )之后使用表达式,而is a statementifj += 1


恭喜,你刚刚躲过了一劫——没有将它翻译成:

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

是有效的python代码,几乎可以肯定是一个错误!

于 2013-02-27T06:53:46.077 回答
1

只需将其分成两行,因为 Python 没有++运算符。

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

如果jglobal(通常不赞成),那么:

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 回答