Python中的意外缩进错误,但仅在组合两个否则正常工作的语句时发生

2024-10-01 15:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

以下两个代码段单独放在repl中时可以正常工作:

(一)

with open('/shared/errorStatsByDowAndHour.tsv','r') as f:
    for line in f:
        phs.append([twodec(l.strip()) for l in line.split('\t')])

(二)

^{pr2}$

但是,当组合如下:

with open('/shared/errorStatsByDowAndHour.tsv','r') as f:
    for line in f:
        phs.append([twodec(l.strip()) for l in line.split('\t')])
for p in phs:
    print p 

将生成以下错误:

>>> with open('/shared/errorStatsByDowAndHour.tsv','r') as f:
...     for line in f:
...             phs.append([twodec(l.strip()) for l in line.split('\t')])
... for p in phs:
  File "<stdin>", line 4
    for p in phs:
      ^
SyntaxError: invalid syntax
>>>     print p
  File "<stdin>", line 1
    print p
    ^
IndentationError: unexpected indent

如有解释,不胜感激。在


Tags: infortsvaswithlineopenshared
1条回答
网友
1楼 · 发布于 2024-10-01 15:34:28

每当您在交互式解释器中缩进块之后返回顶层时,都需要输入一个空白行来指示Python现在可以执行该块了。在

如果您的目标是能够将代码从脚本复制/粘贴到交互式解释器并使其运行,则可以执行以下操作:

exec r'''
[copy/paste your code here]
'''

不过,一定要先检查代码中是否有docstring和其他可能会把事情搞砸的东西。您可以切换报价类型使其生效。在

相关问题 更多 >

    热门问题