0

私はよく次のような状況に陥ります。

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

この時点で、もう一度やり直したいと思います (Java の「トリム」と Python の「ストリップ」を混同したため)。しかし、ファイルをいじってしまうので、ループを 1 回でも繰り返す余裕はありません。

この状況での私の典型的な解決策は、感嘆符などの不正な構文を入力することです。

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

しかし、それは物事を行うための不器用な方法であり、Pythonic ではありません。入力した前の継続行をインタプリタに忘れさせる方法はありませんか? これにより、すべてを再度入力する必要がなくなります。いくつかのコントロールキーの組み合わせ?見つからない。

4

1 に答える 1

1

Linux (および MacOS?) では、Control-C で次のように表示されますKeyboardInterrupt

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

ただし、Windows では、コマンド プロンプトに戻ります。Linux で Control-D を押すと、コマンド プロンプトに戻りますが、空白行にいる場合のみです。

キーボードに「ホーム」キー (または MacOS での function-left arrow などのショートカット) がある場合は、行の先頭にすばやくジャンプし、「#」を追加して行をコメントアウトできます。

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

これの唯一の欠点は、キーストロークが数回増えることです。これらの方法はどちらもタブ/スペースを失い、行頭に戻ります。

于 2016-02-15T22:39:30.857 に答える