前回に続き、もう少し変数と型について。
前回書いた、数値系の型「int」と「float」以外ついて。
long ( 長整数 )
非常に大きな整数を扱います。
pythonでは桁が多くなると、intからlongに変わります。
数値の末尾に「l」又は「L」を付けますがなくてもOKです。(ただ、付けるならば見づらいのでLをオススメします。)
a = 9900000000000000000L
complex ( 虚数 )
虚数は実数部が 0.0 の複素数です。
数値の末尾に「j」または「J」を付けます。
a = 3.14j
前回書いた、シーケンス型「str」と「unicode」以外ついて。
list ( リスト )
リストは、複数のオブジェクトをまとめて管理することができます。
括弧[]で囲んだ中にオブジェクトをカンマ(,)で区切って記述します。
a = [ 1, 2, 3, "a", "b", "c", u"あ", u"い", u"う" ]
リストオブジェクトから、インデックスを指定して要素を取得するには次の書式を使います。
リストオブジェクト[インデックス]
実際に、リスト「a」の3番目の要素を取り出してみます。
インデックスは0から数えるので、3番目の要素は2になります。
print a[2]
tuple ( タプル )
リスト型とは共通している部分が多いのですが、タプルでは一度作成されたオブジェクトの要素を変更できません。
括弧()で囲んだ中にオブジェクトをカンマ(,)で区切って記述します。(省略も可能です。)
a = ( 1, 2, 3, "a", "b", "c", u"あ", u"い", u"う" )
b = 1, 2, 3, "a", "b", "c", u"あ", u"い", u"う"
マップ型
dict ( 辞書 )
辞書型はシーケンス型と同じですが、要素に順序はありません。
インデックスで要素を取り出すことは出来ますが、各要素に「キー」と呼ばれる識別子を登録します。
辞書型のオブジェクトを作成するには次のように行います。
括弧{}で囲んだ中に要素をカンマ(,)で区切って記述し、値とキーはコロン(:)で区切って記述します。
a= { "year":2012, "month":5, "day":9 }
各要素を取り出してみましょう。
リストではインデックスでしたが、辞書ではキーを使用します。
print a["year"]
print a["month"]
print a["day"]
まとめると、Pythonの型はこんな感じです。
数値型
- 整数( int )
- 長整数( long )
- 浮動小数点( float )
- 虚数( complex )
シーケンス型
- 文字列( str / string )
- ユニコード文字列( unicode )
- リスト( list )
- タプル( tuple )
マップ型
では早速、よく使うリストを使ってやってみましょう。
選択しているノードを取得し、1番目のノードのトランスフォームを変更してみます。
選択しているノードを取得するコマンドは、「ls」です。
トランスフォームの変更するコマンドは、「xform」です。
まず、Mayaのコマンドが使えるようにモジュールをインポートします。
import maya.cmds as cmds
次に、選択したノードを取得し変数に代入します。
「ls」コマンドを使用し、フラグ「sl」をオンにして、選択しているオブジェクトを取得します。
import maya.cmds as cmds
selecteds = cmds.ls( sl=True )
次に、選択したノード の1番目のトランスフォームを変更します。
今回は、位置を替えてみようと思います。
位置を指定するフラグは「translation(t)」で、「t=[ x座標, y座標, z座標 ]」と書きます。
適当なノードを作成し、選択した状態で実行してください。
import maya.cmds as cmds
selecteds = cmds.ls( sl=True )
cmds.xform( selecteds[0], t=[10,10,10] )
宿題
選択したノードの2番目のトランスフォームを以下のように変更してください。
位置 が、x=10, y=10, z=10
回転が、 x=0, y=45, z=0
スケールが、x=2, y=2, z=2
ヒント
回転のフラグは「rotation(ro)」
スケールのフラグは「scale(s)」
注意
実行前に、適当なノードを2つ以上作成し
2つ以上選択した状態で実行してください。
最近のコメント