Dis*_*ami 2 python printing python-3.x
我是一个天生的业余编程新手,试图在Linux上使用Geany学习Python 3(3.2).我一直在尝试在Swaroop CH的Python 3教程中重写以下示例我的代码如下:
#!/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='')
Run Code Online (Sandbox Code Playgroud)
我无法编译程序.我收到以下错误,我不明白:
SyntaxError: ('invalid syntax', ('poem.py', 19, 24, " print(line, end='')\n"))
Run Code Online (Sandbox Code Playgroud)
运行代码时,我得到同样的错误.我删除后它工作正常end=' '.如果我省略它,则在诗的每一行之间都会打印一个空白行.
我很感激任何帮助/解释.
Gre*_*ill 11
您的文件包含Python 3的正确"shebang"行:
#!/usr/bin/env python3
Run Code Online (Sandbox Code Playgroud)
但是,为了使此shebang行生效,您必须直接运行脚本:
./poem.py
Run Code Online (Sandbox Code Playgroud)
(您可能必须这样做chmod +x poem.py才能使脚本可执行.)
如果您选择显式运行Python解释器:
python poem.py
Run Code Online (Sandbox Code Playgroud)
然后python运行的将是你的PATH中的第一个(键入python --version以查看哪一个).您仍然可以使用以下命令显式运行Python 3:
python3 poem.py
Run Code Online (Sandbox Code Playgroud)
这应该适合你.
您没有安装Python 3.x,或者没有使用它.这在Python 3.x下运行正常,但我得到你在Python 2.x下的错误.Shebangs不是一个保证人,他们必须尊重你用来运行脚本的任何东西,如果你直接运行解释器,将被忽略.因此,请确保您运行的是Python3.根据您的环境,这可能以不同的方式完成,但在Unix下,请尝试python3代替python(尽管某些发行版如Arch Linux映射python到Python 3.x和python2Python 2.x).
另外,所有文件都是Python中的迭代文件,所以你做得更好:
with open('poem.txt', mode='r') as pfile:
for line in pfile:
print(line, end='')
Run Code Online (Sandbox Code Playgroud)
另请注意PEP8建议:
当用于指示关键字参数或默认参数值时,请勿在"="符号周围使用空格.
与你的模式参数一样.
| 归档时间: |
|
| 查看次数: |
6979 次 |
| 最近记录: |