print
Pythonの2の文であるために使用されるが、今では、Python 3に括弧を必要とする関数となりました。
Python 3でこれらの括弧を抑制する方法はありますか?たぶん、印刷機能を再定義することによって?
だから、代わりに
print ("Hello stack over flowers")
私はタイプすることができます:
print "Hello stack over flowers"
print
Pythonの2の文であるために使用されるが、今では、Python 3に括弧を必要とする関数となりました。
Python 3でこれらの括弧を抑制する方法はありますか?たぶん、印刷機能を再定義することによって?
だから、代わりに
print ("Hello stack over flowers")
私はタイプすることができます:
print "Hello stack over flowers"
()
常に入力 するのは不必要に時間がかかります。
回答:
Python 3で印刷するには括弧のペアが必要ですがprint
、関数であるため、の後にスペースは必要ありません。つまり、これは1つの余分な文字だけです。
それでも1組の括弧を入力するのが「不必要に時間がかかる」場合はp = print
、その方法で数文字を保存できます。新しい参照を関数にバインドすることはできますが、キーワードにバインドすることはできないため、このprint
ショートカットはPython3でのみ実行できます。
Python 2:
>>> p = print
File "<stdin>", line 1
p = print
^
SyntaxError: invalid syntax
Python 3:
>>> p = print
>>> p('hello')
hello
コードが読みにくくなりますが、何かを印刷するたびにこれらの数文字を保存します。
Python3print
コードで括弧なしで使用することは良い考えではありません。エイリアスなども作成していません。それが取引を妨げるものである場合は、Python2を使用してください。
ただし、print
括弧なしはインタラクティブシェルで役立つ場合があります。文字数を減らすことは実際には問題ではありませんが、デバッグ中に何かを印刷するたびにShiftキーを2回押す必要がなくなります。IPythonでは、行をスラッシュで始めると、括弧を使用せずに関数を呼び出すことができます。
Python 3.6.6 (default, Jun 28 2018, 05:43:53)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: var = 'Hello world'
In [2]: /print var
Hello world
また、をオンにautocall
すると、スラッシュを入力する必要もありません。
In [3]: %autocall
Automatic calling is: Smart
In [4]: print var
------> print(var)
Hello world
Autohotkeyを使用してマクロを作成します。AHKは無料で、インストールは非常に簡単です。www.autohotkey.com
マクロを、たとえばalt-pに割り当てることができます。
!p::send print(){Left}
これにより、alt-pがprint()を出力し、カーソルを親の内側に移動します。
または、さらに良いことに、問題を直接解決するには、自動置換を定義し、開いているファイルの拡張子が.pyの場合にスコープを制限します。
#IfWinActive .py ;;; scope limiter
:b*:print ::print(){Left} ;;; I forget what b* does. The rest should be clear
#IfWinActive ;;; remove the scope limitation
これは、保証された、痛みのない、透明なソリューションです。
いいえ。Python3では常に構文エラーになり2to3
ます。コードをPython3に変換するためにを使用することを検討してください。
shift
+ 9
.....そして再びshift
+0
は網羅的です。
print
、括弧のペアなどの役に立たないデバッグ手法によって邪魔されないようにする必要があります。
print
それだけの価値があると感じました。
Python 2のように、括弧なしで実行できる唯一の方法はキーワードにすることであるため、できません。手動でキーワードを定義することはできないため、できません。
私はついに、古いPython2サンプルスクリプトでこれらすべてを変更するための正規表現を見つけました。それ以外の場合は2to3.pyを使用します。
Regexr.comで試してみてください。NP++(?)では機能しません。
find: (?<=print)( ')(.*)(')
replace: ('$2')
変数の場合:
(?<=print)( )(.*)(\n)
('$2')\n
ラベルと変数の場合:
(?<=print)( ')(.*)(',)(.*)(\n)
('$2',$4)\n
(?<=print)( ')(.*)(')
\('$2'\)
print ('string')
にスペースがあることを認識する半関連のトリックを見つけました。これにより、印刷可能なものをより簡単に強調表示し、多くのエディターの自動クローズを使用して括弧と引用符を追加できます。