さて、寄り道が長くなりましたが、
プログラム3つの基礎の二つ目
「条件分岐」について解説していきたいと思います。
プログラムは基本的に上から順に実行されますが、
時と場合によって“処理を変えたい”という状況が出てきます。
サンプルとして以下のコードを走らせてみて下さい。
この様に、ユーザーに選択を任せたい場合も
条件分岐で、実行される処理を変える事が出来ます。
if文の使い方
条件分岐には「if」という「もし~だったら」という構文を使います。
上記のコードは若干複雑なので、以下にシンプルなコードを用意しました。
これを走らせると、以下の様な結果がスクリプトエディタのログに吐かれます
#---------------------------------------------
iTestInt = 7
if iTestInt > 5:
print( "iTestInt は 5 以上です" )
else:
print( "iTestInt は 5 以下です" )
#---------------------------------------------
iTestInt は 5 以上です
「iTestInt は 5 以上です」と判定されました。
それでは、試しに「iTestInt = 7」の数字を5以下のモノに書き換えて走らせてみます。
#---------------------------------------------
iTestInt = 3
if iTestInt > 5:
print( "iTestInt は 5 以上です" )
else:
print( "iTestInt は 5 以下です" )
#---------------------------------------------
iTestInt は 5 以下です
判定が、5以下に変わりました。
さて、「iTestInt = 7」という
新要素である「変数」が、いきなり出てきて混乱された方も居るかも知れませんが
全く難しいものではありませんので、ご安心下さいませ。
若き日に受けた数学の授業を思い出して貰いたいのですが、
「x・y・z」の様な任意の数値を代入出来る文字を「変数」と呼んでおりましたよね
正にアレです。
違う点としては、代入出来るのは「数字」だけではなく
「文字列」や「リスト」等、なんでも入れる事が出来ます。
(特にPythonは、変数の型を定義しなくても、自動でしてくれるので
本当に何でも入れられてしまいます)
更に「x・y・z」だけではなく、どんな文字列でも変数として扱う事も出来ます。
※ただし、コマンド・フラグ・環境変数等、既に使用されている文字列は使えません
サンプルでは「iTestInt 」を変数としている訳ですね。
つまり、このコードは
変数「iTestInt」の中身が5以上か否かを判定するものという事です。
if iTestInt > 5:
この一文の意味は、
「もし iTestInt が 5 よりも大きかったら」となります。
大きかった場合に分岐後の処理を行うわけです。
else の使い方
もう、お分かりかとは思いますが
「else:」は「If」で提示された条件以外の場合の処理となります。
サンプルコードの場合、
「もし iTestInt が 5 よりも大きかったら」以外の条件であれば、
else分岐後の処理を行います。
ちなみに、条件を満たさない場合の処理を入れる必要が無ければ
「else:」は無くても問題ありません。
if not の使い方
「if文」には「not」を付けるだけで「その条件以外もの」を選ぶ様にする事が出来ます。
サンプルコードを「if not」にすると
「iTestInt」変数に「5」以下の数字を入れる事で
ログがプリントされる様になりました。
elif の使い方
「elif」は 「if」の条件に当てはまらなかった「else」の中から
更に条件をかけて分岐させるというものです。
サンプルコードに「elif」で2以上のものという条件を足しました。
これで「iTestInt」変数が「7」の場合は「iTestInt は 5 以上です」という結果を吐き、
「3」の場合は「iTestInt は 2 以上です」という結果を吐く様になります。
次項 → 06_インデント
一覧へ
関連-------------------------------------
Python_MAYA機能メモ
編集
プログラム3つの基礎の二つ目
「条件分岐」について解説していきたいと思います。
プログラムは基本的に上から順に実行されますが、
時と場合によって“処理を変えたい”という状況が出てきます。
サンプルとして以下のコードを走らせてみて下さい。
#---------------------------------------------------------------------------------------------------
import maya.cmds as cmds
if cmds.confirmDialog(message="分かれ道、どちらに進む?",button=["←","→"],icon="question") == "←":
cmds.confirmDialog(message="熊さん に 出会った・・・",button=["close"],icon="warning")
else:
cmds.confirmDialog(message="埋蔵金 を 発見!!",button=["close"],icon="information")
#---------------------------------------------------------------------------------------------------
この様に、ユーザーに選択を任せたい場合も
条件分岐で、実行される処理を変える事が出来ます。
if文の使い方
条件分岐には「if」という「もし~だったら」という構文を使います。
上記のコードは若干複雑なので、以下にシンプルなコードを用意しました。
#---------------------------------------------
iTestInt = 7
if iTestInt > 5:
print( "iTestInt は 5 以上です" )
else:
print( "iTestInt は 5 以下です" )
#---------------------------------------------
これを走らせると、以下の様な結果がスクリプトエディタのログに吐かれます
#---------------------------------------------
iTestInt = 7
if iTestInt > 5:
print( "iTestInt は 5 以上です" )
else:
print( "iTestInt は 5 以下です" )
#---------------------------------------------
iTestInt は 5 以上です
「iTestInt は 5 以上です」と判定されました。
それでは、試しに「iTestInt = 7」の数字を5以下のモノに書き換えて走らせてみます。
#---------------------------------------------
iTestInt = 3
if iTestInt > 5:
print( "iTestInt は 5 以上です" )
else:
print( "iTestInt は 5 以下です" )
#---------------------------------------------
iTestInt は 5 以下です
判定が、5以下に変わりました。
さて、「iTestInt = 7」という
新要素である「変数」が、いきなり出てきて混乱された方も居るかも知れませんが
全く難しいものではありませんので、ご安心下さいませ。
若き日に受けた数学の授業を思い出して貰いたいのですが、
「x・y・z」の様な任意の数値を代入出来る文字を「変数」と呼んでおりましたよね
正にアレです。
違う点としては、代入出来るのは「数字」だけではなく
「文字列」や「リスト」等、なんでも入れる事が出来ます。
(特にPythonは、変数の型を定義しなくても、自動でしてくれるので
本当に何でも入れられてしまいます)
更に「x・y・z」だけではなく、どんな文字列でも変数として扱う事も出来ます。
※ただし、コマンド・フラグ・環境変数等、既に使用されている文字列は使えません
サンプルでは「iTestInt 」を変数としている訳ですね。
つまり、このコードは
変数「iTestInt」の中身が5以上か否かを判定するものという事です。
if iTestInt > 5:
この一文の意味は、
「もし iTestInt が 5 よりも大きかったら」となります。
大きかった場合に分岐後の処理を行うわけです。
else の使い方
もう、お分かりかとは思いますが
「else:」は「If」で提示された条件以外の場合の処理となります。
サンプルコードの場合、
「もし iTestInt が 5 よりも大きかったら」以外の条件であれば、
else分岐後の処理を行います。
ちなみに、条件を満たさない場合の処理を入れる必要が無ければ
「else:」は無くても問題ありません。
if not の使い方
「if文」には「not」を付けるだけで「その条件以外もの」を選ぶ様にする事が出来ます。
#---------------------------------------------
iTestInt = 7
if not iTestInt > 5:
print( "iTestInt は 5 以下です" )
#---------------------------------------------
サンプルコードを「if not」にすると
「iTestInt」変数に「5」以下の数字を入れる事で
ログがプリントされる様になりました。
elif の使い方
「elif」は 「if」の条件に当てはまらなかった「else」の中から
更に条件をかけて分岐させるというものです。
#---------------------------------------------
iTestInt = 7
if iTestInt > 5:
print( "iTestInt は 5 以上です" )
elif iTestInt > 2:
print( "iTestInt は 2 以上です" )
else:
print( "iTestInt は 2 以下です" )
#---------------------------------------------
サンプルコードに「elif」で2以上のものという条件を足しました。
これで「iTestInt」変数が「7」の場合は「iTestInt は 5 以上です」という結果を吐き、
「3」の場合は「iTestInt は 2 以上です」という結果を吐く様になります。
次項 → 06_インデント
一覧へ
関連-------------------------------------
Python_MAYA機能メモ
編集
※コメント投稿者のブログIDはブログ作成者のみに通知されます