简单的Abs函数在python中提供语法错误

时间:2018-07-03 10:13:53

标签: python

我正在尝试比较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

注意:我正在处理整数。

1 个答案:

答案 0 :(得分:2)

如果您使用的是Python 3,则会收到以下语法错误:

ParseError

应该是:

    print abs(int(y1-y2))
            ^
SyntaxError: invalid syntax