我正在尝试比较python(3.6)中的绝对值,但这给了我一个语法错误。
if (x1-x2) % 2 == 0 and abs(x1-x2)/2 == abs(y1-y2):
我尝试使用
在python控制台中重现它>>> x1 = 5
>>> x2 = -10
>>> abs(x2-x1)
15
以及
>>> if 5 < abs(x2-x1):
... print('hi')
...
hi
但是在代码中它返回了一个错误。
这是到目前为止的整个程序:
def knight(p1, p2):
x1 = int(coordinates(p1[0]))
x2 = int(coordinates(p2[0]))
y1 = int(p1[1])
y2 = int(p2[1])
if (x1-x2) % 2 == 0 and abs(x1-x2)/2 == abs(y1-y2):
print abs(int(y1-y2))
def coordinates(t):
if t == 'a': return 1
if t == 'b': return 2
if t == 'c': return 3
if t == 'd': return 4
if t == 'e': return 5
if t == 'f': return 6
if t == 'g': return 7
if t == 'h': return 8
注意:我正在处理整数。
答案 0 :(得分:2)
如果您使用的是Python 3,则会收到以下语法错误:
ParseError
应该是:
print abs(int(y1-y2))
^
SyntaxError: invalid syntax