前項の条件分岐の際に
「インデント」の説明が全く出来なかったので
ここで解説したいと思います。
インデントとは
端的に言ってしまうと、行の頭に空白を入れて文字下げをする事です。
if文のサンプルコードで、分岐後の命令文の先頭にスペースが入っているアレの事です。
#---------------------------------------------
iTestInt = 7
if iTestInt > 5:
print( "iTestInt は 5 以下です" )
# ↑ コレ
#---------------------------------------------
この、インデント、
多くのスクリプト言語の場合
「視認性を良くする」くらいの目的でしか使われず
別にやらなくても問題無いのですが、
いかんせんPythonの場合は、話が違ってきます。
たとえば、ifの条件分岐の後に処理される命令文は
ifの眷属として”一括りのもの”であるという扱いをする必要があります。
これを『コードブロック』と言います。
大抵の言語では、コードブロックを示すのに{}で囲むのですが、
Pythonではインデントがコードブロックとして使われているのです。
もし仮にインデントが無いコードを走らせた場合・・・
#---------------------------------------------
iTestInt = 7
if iTestInt > 5:
print( "iTestInt は 5 以下です" )
#---------------------------------------------
・・・と、怒られてしまいます。
この、インデントエラー
なかなかシビアな判定の為、初心者泣かせな仕様だったりします。
Pythonのインデントに対する厳しさには鬼気迫るものがあり
少しでも規律を乱す奴が居たら絶対に許してくれません。
たとえば・・・
何もないところでインデントを使う
#---------------------------------------------------------------------
print( "インデントエラーになるサンプルコード―その①" )
#---------------------------------------------------------------------
コードブロック内でインデントが揃っていない
#---------------------------------------------------------------------
if 100 == 100:
print( "-------------------------------------------------------" )
print( "インデントエラーになるサンプルコード―その②" )
print( "-------------------------------------------------------" )
#---------------------------------------------------------------------
等々・・・
慣れないうちは、悩みの種となる部分でもあります。
Maya2023から教えてくれる様になりました。
まあPythonは、これのおかげで
誰が書いていても、ある程度の視認性が約束されるので
むしろメリットの方が多いのですけどね。
ちなみに、
ちょっとした便利機能として
以下のショートカットでインデントの追加と削除が出来ます。
Ctrl + [ (インデント除去)
Ctrl + ] (インデント追加)
次項 → 07_繰り返し処理
前項 → 05_条件分岐
一覧へ
関連-------------------------------------
Python_MAYA機能メモ
Python_MAYA_ちょっとしたツール集
Python_エラーメモ
編集
※コメント投稿者のブログIDはブログ作成者のみに通知されます