当我将代码粘贴到python终端中时如何停用双缩进

时间:2018-07-18 20:46:19

标签: python paste

我试图理解为什么我在python解释器中的终端(linux)中粘贴会在每行中使双缩进例如: 如果我粘贴这些行:

def function(string):
    final = ''
    for i in string:
        try:
            final += str(int(i))
        except ValueError:
            return int(final)

我将在我的终端机上获取它:

    ent>>> def function(string):
... 
  File "<stdin>", line 2

    ^
IndentationError: expected an indented block
>>>     final = ''
  File "<stdin>", line 1
    final = ''
    ^
IndentationError: unexpected indent
>>> 
>>>     for i in string:
  File "<stdin>", line 1
    for i in string:
    ^
IndentationError: unexpected indent
>>> 

越来越多...因为当有for或任何需要制表符的指令时,它直接将其返回而不是等待下一条指令,因此它引发IndentationError:

我意识到,如果我将其粘贴为例:

import mathimport threading

它将像这样粘贴在我的终端中:

>>> import math
>>> import threading
>>> 

我从一开始就没有,所以有什么主意吗?因为不可能在互联网上找到我的答案。

1 个答案:

答案 0 :(得分:0)

它们混杂在一起,如果我们看到我的第一个代码,那只是一个缩进,然后第二行是一个制表符和一个缩进,从第四行起是两个制表符,就像我们在问题上所看到的一样。 而且,如果我将其粘贴到其他任何文本编辑器中都可以正常工作,我试图查看终端或Linux中的所有设置,但到目前为止我什么都没发现……这真的很奇怪!

编辑:

显然是出于我不知道的原因,它来自我用来编写python代码的编辑器Atom。

我解释这很奇怪!

如果我从Atom复制代码,然后将其粘贴到任何其他文本编辑器中(无论是在kate还是其他版本中),然后又从其他编辑器复制并粘贴到我的终端中,则会再次发生,双重提示。

但是要纠正这一点,我只是在Atom中创建一个新的fil,然后就可以了,它可以正确地粘贴到终端中。

问题解决了,但是为什么?这是一个谜^^