我试图理解为什么我在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
>>>
我从一开始就没有,所以有什么主意吗?因为不可能在互联网上找到我的答案。
答案 0 :(得分:0)
它们混杂在一起,如果我们看到我的第一个代码,那只是一个缩进,然后第二行是一个制表符和一个缩进,从第四行起是两个制表符,就像我们在问题上所看到的一样。 而且,如果我将其粘贴到其他任何文本编辑器中都可以正常工作,我试图查看终端或Linux中的所有设置,但到目前为止我什么都没发现……这真的很奇怪!
编辑:
显然是出于我不知道的原因,它来自我用来编写python代码的编辑器Atom。
我解释这很奇怪!
如果我从Atom复制代码,然后将其粘贴到任何其他文本编辑器中(无论是在kate还是其他版本中),然后又从其他编辑器复制并粘贴到我的终端中,则会再次发生,双重提示。
但是要纠正这一点,我只是在Atom中创建一个新的fil,然后就可以了,它可以正确地粘贴到终端中。
问题解决了,但是为什么?这是一个谜^^