1. ホーム
  2. python

[解決済み] Pythonのコードのインデントを中括弧に変換する方法はありますか?

2023-06-05 16:53:47

質問

私は全盲のプログラマで、Pythonを学びたいと思っています。残念ながら、コードブロックが異なるレベルのインデントで表現されているという事実が大きな障害となっています。中括弧や他のコードブロック区切り文字を使用してコードを書き、そのフォーマットを Python インタープリタが使用できるように適切にインデントされた表現に変換できるようなツールがあるのでしょうか?

どのように解決するのですか?

Python本体と一緒に配布されている解決方法があります。 pindent.py Windowsでインストールした場合、それはToolsScriptsディレクトリにあります(私のパスはC: \Python25╱ToolsScripts)、それはあなたがしなければならないように見えます。 svn.python.org から取得してください。 を実行する必要があるようです。

ブロックが閉じられたときにコメントを追加したり、コメントが入れられたときに適切にコードをインデントすることができます。以下は、pindentがコマンドで出力するコードの例です。

pindent.py -c myfile.py

def foobar(a, b):
   if a == b:
       a = a+1
   elif a < b:
       b = b-1
       if b > a: a = a-1
       # end if
   else:
       print 'oops!'
   # end if
# end def foobar

ここで、オリジナルの myfile.py があったところ。

def foobar(a, b):
   if a == b:
       a = a+1
   elif a < b:
       b = b-1
       if b > a: a = a-1
   else:
       print 'oops!'

また pindent.py -r を使ってコメントに基づいて正しいインデントを挿入することもできます(詳しくはpindent.pyのヘッダーを読んでください)。これにより、インデントを気にせずにpythonでコーディングできるようになるはずです。

例えば pindent.py -r myfile.py を実行すると、以下のコードが myfile.py で生成されるコードと同じように適切にインデントされた(そしてコメントされた)コードに変換します。 pindent.py -c の例と同じように、適切にインデントされたコードに変換します。

def foobar(a, b):
if a == b:
a = a+1
elif a < b:
b = b-1
if b > a: a = a-1
# end if
else:
print 'oops!'
# end if
# end def foobar

もし、さらに支援が必要な場合は、この投稿にコメントしていただければ、お手伝いします。