函数问题:SyntaxError:解析时出现意外的EOF

时间:2020-05-01 18:36:35

标签: python function syntax-error

只是在玩代码战,然后遇到了这个问题:https://www.codewars.com/kata/5514e5b77e6b2f38e0000ca9/train/python

现在,我在Sublime中构建了此功能:

def up_array(arr):

    is_valid = []

    if len(arr) > 0:
        is_valid.append(1)
    else:
        is_valid.append(0)

    for x in arr:
        if x < 0:
            is_valid.append(0)
        else:
            is_valid.append(1)

    if 0 not in is_valid:
        arr = int(''.join(str(n) for n in arr))
        arr += 1
        arr = str(arr)
        arr = [int(n) for n in arr]
        return arr
    else:
        return None



print(up_array([4,3,2,5])

而且我不断收到SyntaxError: unexpected EOF while parsing

当我在函数外运行相同的代码时,

BUT

arr = [4,3,2,5]

is_valid = []
if len(arr) > 0:
    is_valid.append(1)
else:
    is_valid.append(0)

for x in arr:
    if x < 0:
        is_valid.append(0)
    else:
        is_valid.append(1)

if 0 not in is_valid:
    arr = int(''.join(str(n) for n in arr))
    arr += 1
    arr = str(arr)
    arr = [int(n) for n in arr]
    print(arr)
else:
    print(None)

该代码在各种测试中运行良好。关于功能的问题有什么想法? 我尝试重新制表和重写,但是当我将代码放入函数中时。我开始遇到此解析错误。

我不想花太多时间在问题上,但是它会在我的脑海中徘徊,因此任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:0)

SyntaxError: unexpected EOF while parsing错误是由于最后一行print(up_array([4,3,2,5])

缺少括号引起的

应该是这样的:

print(up_array([4,3,2,5]))