我是一个初出茅庐的业余编程新手,想在Linux上使用Geany学习Python 3(3.2)。我一直在尝试在Swaroop C H's Python 3 tutorial中重新编写以下示例,代码如下:
#!/usr/bin/env python3
# Filename: poem.py
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
use Python!
'''
with open('poem.txt', mode = 'w') as pfile:
pfile.write(poem)
with open('poem.txt', mode = 'r') as pfile:
while True:
line = pfile.readline()
if len(line) == 0:
break
print(line, end='')
我不能编译这个程序。我得到的错误如下,我不明白:
SyntaxError: ('invalid syntax', ('poem.py', 19, 24, " print(line, end='')\n"))
我在运行他的代码时遇到同样的错误。一旦删除
end=' '
,它就可以正常工作。如果我把它省略,诗的每一行之间都会印一个空行。如果有任何帮助/解释,我将不胜感激。
最佳答案
您没有安装Python3.x,或者没有使用它。这在Python 3.x下运行对我来说很好,但是我得到了Python 2.x下的错误。Shebangs不是担保人,它们必须被您用来运行脚本的任何东西所尊重,如果您直接运行解释器,将被忽略。所以试着确定你在跑蟒蛇3。根据您的环境,这可能是以不同的方式完成的,但是在Unix下,尝试python3
而不是python
(尽管有些发行版,如Arch-Linux将python
映射到Python 3.x和python2
映射到Python 2.x)。
另一方面,所有文件在Python中都是可访问的,因此最好执行以下操作:
with open('poem.txt', mode='r') as pfile:
for line in pfile:
print(line, end='')
另请注意,PEP8建议:
当用于指示关键字参数或默认参数值时,不要在“=”符号周围使用空格。
就像你的模式论证一样。