Python コードのインデントを中括弧に変換する方法はありますか? 質問する

Python コードのインデントを中括弧に変換する方法はありますか? 質問する

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

ベストアンサー1

Python自体に配布されている問題の解決策があります。pindent.pyそれはWindowsインストールのTools\Scriptsディレクトリにあります(私のパスはC:\Python25\Tools\Scriptsです)。svn.python.orgから入手してくださいLinux または OSX 上で実行している場合。

ブロックが閉じられるときにコメントを追加したり、コメントが挿入されている場合はコードを適切にインデントしたりできます。以下は、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

最終的にどのような解決策を採用するかを知りたいです。さらにサポートが必要な場合は、この投稿にコメントしてください。サポートさせていただきます。

おすすめ記事