2016-02-15 38 views
0

我经常发现自己在这样的情况:取消在Python解释了“......”延续块

>>> for line in infile.readlines(): 
... line = line.rtrim() 
... line█  # ^^^^^ Oops, mistake! 

在这一点上,我想重新开始(因为我是混合了从‘微调’ Java与Python中的“strip”)。但我不能让循环运行一次迭代,因为它会混淆文件。

在这种情况下我通常的办法就是键入一些非法语法,如感叹号:

>>> for line in infile.readlines(): 
... line = line.rtrim() 
... line! 
    File "<stdin>", line 2 
    line! 
     ^
SyntaxError: invalid syntax 
>>> █ 

但是,这是做事,而不是Python的所有的笨拙方式。难道没有办法让翻译人员忘记我输入的前一行继续吗?这也将使我无法再重新输入整个事物。一些控制组合键?我找不到它。

+0

只是写在一个文件,然后运行使用python解释器。 –

+0

使用['ipython'](http://ipython.org/) –

+0

IT不是Pythonic在解释器中尝试做所有事情。使用文本编辑器或IDE编写脚本,然后从命令行运行它。 – IanAuld

回答

1

在Linux(?和MacOS),控制-C会给你一个KeyboardInterrupt

>>> if True: 
...  asdf 
KeyboardInterrupt 
>>> 

然而,在Windows下,这将引发你回到命令提示符。在Linux下的Control-D会让你回到命令提示符,但只有当你在一个空行。

如果你的键盘有一个'Home'键(或者它的快捷键,例如MacOS下的功能左箭头),你可以快速跳到这行的开头并添加一个'#'来注释行:

>>> if True: 
... # asdf 
...  print(False) 
... 
False 
>>> 

唯一的缺点是它还有几个击键。这两种方法都会丢失你的制表符/空格,并将你放回行首。