最後の旅を始めよう

-黒の英雄譚・零-

MAYA Python どっ基礎講座‗05 『条件分岐』

2023年01月05日 | MAYA_Pyhon...
さて、寄り道が長くなりましたが、
プログラム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機能メモ
編集
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« MAYA Python どっ基礎講座‗04... | トップ | MAYA Python どっ基礎講座‗06... »
最新の画像もっと見る

コメントを投稿

MAYA_Pyhon...」カテゴリの最新記事