为什么语法无效(<string>,第24行)?

时间:2017-10-03 12:54:07

标签: python python-3.x syntax-error

Python的新手,我无法弄清楚我的代码中导致错误消息的原因......

It says '[pylint] E0001:invalid syntax (<string>, line 24)'.

有人可以解释我在这里缺少的东西吗?

非常感谢!

#########################################
# Draws a mario-style right-side-aligned half pyramid 
# of the requested height.
# Restriction: 0 < height < 23
##########################################

while True:
    height = int(input("Height: "))
    if height > 0 and height < 23:
        break
    elif height == 0:
        print()
        print()
        print()
        print("I have drawn a pyramid with a height of 0!")
        print("Isn't it pretty!")
        exit(0)

hashes = 2

for i in range(height):
    spaces = (height - hashes + 1)
    for j in range(spaces):
        print(" ", end="")
    for k in range(hashes):
        print("#", end="" )
    print()
    hashes += 1

2 个答案:

答案 0 :(得分:2)

您使用的是python2,应该更改:

print(" ", end="")
print("#", end="" )

为:

print(" "),
print("#"),

<强>此外

你应该改变:

print() 

print("")

这个&#34;美女&#34;可以通过使用&#34; \ n&#34;来减少它翻译了rowbreak。

print()
print()
print()
print("I have drawn a pyramid with a height of 0!")
print("Isn't it pretty!")

为:

print("\n\n\nI have drawn a pyramid with a height of 0!\nIsn't it pretty!")

答案 1 :(得分:0)

TL; DR:尝试安装pylint3

sudo apt-get install pylint3

今天我遇到了几乎相同的问题。我想使用pyreverse,但是出现了提到的语法错误消息。我已经安装了python2和python3,因此假设pyreverse(pylint)只是使用python2,所以我更改了python符号链接(默认为python2):

sudo ln -sfn /usr/bin/python3.6 /usr/bin/python

但这没有帮助,所以我查看了pylint是否具有pylint3版本以及它是否具有pylint3版本。安装pylint3并运行pyreverse3(对于您的情况为pylint3)后,一切运行正常。

我知道这是一个老问题,但是对其他人来说可能会有所帮助。