Rendering学習日記

日々、3DCGの世界は進歩しています。勉強して理解したことをまとめていきます。RenderMan互換レンダラーやグローバル・イルミネーション。いろんなことに好奇心を持って、面白くなる。目指せShader書き!!
ありがとうございます。

Pythonのインデント

エラーメッセージ
IndentationError: unindent does not match any outer indentation level
調べてみると・・・
インデントがきちんとしていると思っていたら、矢印キーでうろうろしてみると、2ヶ所、タブになっているところがありました。

  • 半角スペースタブかどちらかに統一して記述する。
    • -
    • -

    Improper indentation.

    Improper indentation.
    mqo pythonでエラー表示。
    いろんなサイトで公開されているスクリプトをコピペして実行しようとしたら、上記のエラー
    Improper indentation.

    メタセコイアのスクリプトエディタで表示された。
    どの行かも、黄色で表示される。
    EmEditorで編集してみたら、
    関数def部分のインデントが空白行とタブが混在していることがわかった。
    よって。エディタでタブに統一した。

    Metasequoia(メタセコイア)でpythonスクリプトを読み込んで実行したら、できました。
    ありがとうございます。
    • -
    • -

    辞書と正規化

    メタセコイアのPythonを使うために、
    辞書と関数について検証してみました。
    勉強になります。ありがとうございます。

    C:\Python22jp>python
    Python 2.2.3 (SJIS enhanced) (#42, Jun 8 2003, 01:46:45) [MSC 32 bit (Intel)] o
    n win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> c={}
    >>> for i in range(5):
    ... c[i]=[]
    ...
    >>> c
    {0: [], 1: [], 2: [], 3: [], 4: []}
    >>> c[0]=[1,2,3]
    >>> c
    {0: [1, 2, 3], 1: [], 2: [], 3: [], 4: []}
    >>> def add(a,b):
    ... return [a[i]+b[i] for i in range(len(a))]
    ...
    >>> c[1]=[3,2,1]
    >>> add(c[0],c[1])
    [4, 4, 4]
    >>> c
    {0: [1, 2, 3], 1: [3, 2, 1], 2: [], 3: [], 4: []}
    >>> c[2]=add(c[0],c[1])
    >>> c
    {0: [1, 2, 3], 1: [3, 2, 1], 2: [4, 4, 4], 3: [], 4: []}
    >>> import math
    >>> def normalize(x,y,z):
    ... s=math.sqrt(x*x+y*y+z*z)
    ... if s==0:s=1
    ... else: s=1.0/s
    ... return x*s,y*s,z*s
    ...
    >>> c[0]
    [1, 2, 3]
    >>> normalize(1,2,3)
    (0.2672612419124244, 0.53452248382484879, 0.80178372573727319)
    >>> normalize(c[0])
    Traceback (most recent call last):
    File "", line 1, in ?
    TypeError: normalize() takes exactly 3 arguments (1 given)
    >>> normalize(*c[0])
    (0.2672612419124244, 0.53452248382484879, 0.80178372573727319)
    >>> normalize(4,4,4)
    (0.57735026918962584, 0.57735026918962584, 0.57735026918962584)
    >>> normalize(*add(c[0],c[1]))
    (0.57735026918962584, 0.57735026918962584, 0.57735026918962584)
    >>>
    • -
    • -
    << 3/6 >>