Python 中出现意外缩进错误,但仅在组合两个其他工作语句时出现[重复]

问题描述 投票:0回答:1

以下两个代码片段单独放入REPL中时可以正常工作:

1)

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

['1-00', '34550', 38493.75, '42154', 2745.61]
['1-01', '24087', 32319.5, '42742', 6985.69]
['1-02', '13853', 20238.25, '27358', 5407.19]
['1-03', '14686', 20409.0, '27999', 4798.54]
..

但是,当组合如下时:

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

解释是什么?

python indentation
1个回答
2
投票

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

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

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

确保先检查代码中的文档字符串和其他可能会搞砸的东西。您也许可以切换报价类型以使其正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.