MAYA2022でスクリプト言語としてPython 3がサポートされ、今までの対応言語Python 2とは変わった点が幾つかあります。
Python 2から追加・変更、又は廃止された機能など、それまでの記述方法に慣れている方ほど注意が必要かもしれません。
これまでPython 2で作成してきたスクリプトをPython 3のMAYA2022以降でも使用する場合は多少修正が必要になる可能性があります。
MAYA2022以降で新たにスクリプトを作成する場合は勿論、これまで作成してきたスクリプトをPython 3でも利用する為にも、Python 2からPython 3で変わった点を知る必要があるでしょう。
この記事では、Python 2からPython 3で変更されたポイントの1つ「除算の値はFloat型で返される」を説明したいと思います。
※MAYA2022にインストールされているPython 3のバージョンは3.7です。
|
除算はfloat型-Python 2からPython 3に移行する際の注意点
Python 2でint型の値の除算はint型(整数型)を返しましたが、Python 3ではint型の値であっても除算で返される値は、float型(浮動小数点型)です。
Python 2の除算
ではPython 2でint型の値を除算してみましょう。
[1÷2 ]の処理結果をprint出力するコードを入力、実行します。
division = 1/2
print(division)
Python 2でint型の値を除算すると int型の値を返すため、[1÷2 = 0]になります。
0
1以外の値も確認したいのでfor文でループさせてみましょう。
for i in range(10):
division = i/2
print(division)
[0÷2 = 0][1÷2 = 0][2÷2 =1][3÷2 = 1][4÷2 = 2][5÷2 = 2]…
Python 2でint型の除算は小数点以下が省かれるため、正確な値を取得したい場合は注意が必要。
0
0
1
1
2
2
3
3
4
4
Python 2で除算の返しをfloat型で取得したい場合は、float型を除算する必要があります。
division = 1.0/2
print(division)
float型を除算するとfloat型で返されました。[1.0÷2 = 0.5]
0.5
Python 3の除算はfloat型で返す
対してPython 3の場合は、int型の除算でもfloat型を返します。
前項のPython 2の場合と同様int型を除算するコードを入力実行します。
division = 1/2
print(division)
Python 2ではint型で返されましたが、今度はfloat型で返されました。[1÷2 = 0.5]
0.5
続けて1以外の値もfor文でループさせて確認してみましょう。
for i in range(10):
division = i/2
print(division)
[0÷2 = 0][1÷2 = 0.5][2÷2 =1][3÷2 = 1.5][4÷2 = 2][5÷2 = 2.5]…
Python 3はint型を除算してもfloat型で返します。
Python2でやっていた型を変換する処理をしなくても、正確な値で取得できます。
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
|
long型の廃止-Python 2からPython 3に移行する際の注意点
Python2で桁数の多い整数を扱う場合は、値の末尾に L や l を付けてlong型を明示する必要がありました。
long_num = 16460684767616983032343310363489641301346L
Python 3 では、長整数(long型)は廃止され、すべて整数(int)に統一されました。
Python 3 でlong型を明示するとエラーを返すので、以前のMAYAのバージョンで作成した、値の末尾に L や l を付けたコードがあるスクリプトは修正が必要になります。
long_num = 16460684767616983032343310363489641301346L
# Error: invalid syntax #
|
豊富なカスタマイズメニューで、あなた好みの1台が購入できます。
人気の秘密は何と言ってもコスパの高さ。
最新のCPU・GPUパーツを搭載したモデルを驚きの価格で提供。
山口県の自社工場で組み立てられ徹底した試験・検査後に出荷。
無償修理サービスもありサポート体制も安心。
コスパに徹底的にこだわる方は公式サイトへ >> 【FRONTIER】
|
|
|
BTOパソコンの草分け的ブランドFRONTIER(フロンティア) 3DCG/動画編集/ゲーム用途に合わせてCPUやGPUなどパーツを自由に選べてコスパにもこだわる方にオススメ。 |
|
|
|
|
|