我最近在尝试通过将python代码从PyDev和Emacs复制到python解释器来评估python代码时遇到了常见的"unexpected indent"问题。
尝试修复标签/空格和一些搜索后,我在this answer中找到了原因:
将某些内容粘贴到Python中时也会发生此错误 口译员(终端/控制台)。
请注意,解释器将空行解释为结尾 表达式,所以如果你粘贴像
这样的东西
def my_function():
x = 3
y = 7
解释器将y = 7之前的空行解释为结束 表达式......
,在我的情况下就是这种情况。还有一个对答案的评论指出了一个解决方案:
关键是函数定义中的空行很好, 但是他们仍然必须拥有自Python以来的初始空白 将任何空行解释为函数的结尾
但是解决方案是不切实际的,因为我有很多空行,这对解释器来说是个问题。我的问题是:
是否有方法/工具自动向空行插入正确数量的初始空格,以便我可以将我的代码从编辑器复制并粘贴到解释器?< / em>的
答案 0 :(得分:5)
不要费心插入空格。告诉解释器执行一个文本块:
>>> exec(r'''
<paste your code>
''')
r''' ... '''
tripple-quoted字符串保留了转义符和换行符。有时候(尽管根据我的经验,很少),当代码块包含使用单引号的tripple引用字符串时,您需要使用r""" ... """
。
另一种选择是切换到使用IPython进行粘贴代码的日常测试,该代码使用空行处理粘贴代码。