我经常发现自己处于这样的境地:
>>> for line in infile.readlines():
... line = line.rtrim()
... line█ # ^^^^^ Oops, mistake!
此时我想重新开始(因为我将Java中的“trim”与Python中的“strip”混为一谈)。但我不能让循环运行甚至一次迭代,因为它会弄乱文件。
在这种情况下,我的典型方法是键入一些非法语法,例如感叹号:
>>> for line in infile.readlines():
... line = line.rtrim()
... line!
File "<stdin>", line 2
line!
^
SyntaxError: invalid syntax
>>> █
但这是一种笨拙的做事方式,而不是pythonic。是不是有办法让翻译忘记我输入的前一行延续?这也可以让我免于重新整理整件事。一些控制键组合?我找不到了。
答案 0 :(得分:1)
在Linux(和MacOS?)下,Control-C会给你一个KeyboardInterrupt
:
>>> if True:
... asdf
KeyboardInterrupt
>>>
但是,在Windows下,这将使您返回命令提示符。 Linux下的Control-D会让你回到命令提示符,但前提是你在空白行。
如果您的键盘上有一个&#39; Home&#39;键(或其快捷键,如MacOS下的功能左箭头),您可以快速跳转到该行的开头并添加一个&#39;#&#39;注释掉这一行:
>>> if True:
... # asdf
... print(False)
...
False
>>>
唯一的缺点就是它还有一些按键。这两种方法都会丢失标签/空格,并将您放回到行的开头。