May 062012
 

3.関数/モジュール/パッケージ

3-1.関数

3-1-1.ユーザ定義関数(User-defined Functions

# -*- coding: utf-8 -*
 
#3-1-1.ユーザ定義関数(User-defined Functions)

#1)引数、戻り値を持たないユーザ定義関数

#<定義>
#def 関数名前():
#    .
#    .
#    .

def func1():
    print 1
 
func1()
#1
 
#2)引数を持つユーザ定義関数
 
#<定義>
#def 関数名前(引数):
#    .
#    .
#    .

def func2(x):
    print x
 
func2(2)
#2
 
#3)引数、戻り値を持つユーザ定義関数

#<定義>
#def 関数名前(引数):
#    .
#    .
#    return 戻り値

def func3(x,y):
    a = x + y
    return a
 
b = func3(1,2)
print b
#3

3-1-2.組み込み関数(Built-in Functions)

# -*- coding: utf-8 -*
 
#3-1-2.組み込み関数(Built-in Functions)
#あらかじめインタプリタに定義されている関数
 
#pythonの組み込み関数例
 
a = abs(-10) #引き数の絶対値を返す関数
print a
# 10
 
a = int(20.8123311) #浮動小数点数の引き数を整数に変換(小数点以下切捨て)
print a
# 20
 
#参考:Pythonの組み込み関数一覧
#http://www.python.jp/doc/release/library/functions.html

3-2.モジュール

3-2-1.モジュールの作成

<モジュール-ファイル名:test.py>


# -*- coding: utf-8 -*-

#<モジュール-ファイル名:test.py>

#モジュールの作成方法
#実行ファイルと同じディレクトリ(同一フォルダ内)に.pyファイルを作成する。
#ここではこのコードをコピー&ペーストして、"test.py"とする。

def func():
	return "test"

#モジュールを起動ファイルとしても使う方法
if __name__ == "__main__":
	print func()

<起動ファイル-ファイル名:main.py>


# -*- coding: utf-8 -*-

#<起動ファイル-ファイル名:main.py>

import test
#テストモジュールのインポート
#同じディレクトリ(同一フォルダ内)にtest.pyがなくてはならない。

print test.func()
#test

print dir(test) #モジュール内に定義された関数の表示(リスト)
#['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'rs', 'test1', 'test2']


#その他のインポート方法
#(ライブラリのインポート方法と同じ)

import test as t
print t.func()
#1

from test import func
print func()
#1

from test import *
print func()
#1

3-2-2.標準モジュール
pythonインタープリタに標準で付属されているモジュール一覧
http://www.python.jp/doc/release/library/index.html

3-3.パッケージ

複数のモジュールをまとめてコレクション (“パッケージ”)する

1.起動ファイルと同一のディレクトリにサブディレクトリ(フォルダ)を作成する。
2.1.で作成したサブディレクトリに__init__.pyファイルを作成する(空ファイルでよい)
3.1.で作成したサブディレクトリに”パッケージ”したいモジュールを格納する

※サンプルスクリプトではサブディレクトリ名(フォルダ名)を「test」とした

<__init__.pyファイル>

# -*- coding: utf-8 -*-

#<__init__.pyファイル>

#空ファイルで良い

<モジュール1-ファイル名:test1.py>

# -*- coding: utf-8 -*-

#<モジュール1-ファイル名:test1.py>
def funcA():
	print "testA"

<モジュール2-ファイル名:test2.py>

# -*- coding: utf-8 -*-

#<モジュール2-ファイル名:test2.py>
def funcB():
	print "testB"

<起動ファイル-ファイル名:main.py>

# -*- coding: utf-8 -*-

#<起動ファイル-ファイル名:main.py>
#パッケージ モジュールのインポート
import test.test1 , test.test2

#パッケージ内関数の実行
test.test1.funcA()
#testA
test.test2.funcB()
#testB

※サンプルスクリプトではサブディレクトリ名(フォルダ名)を「test」とした

演習(2)
演習(1)で作成した「ユークリッドの互除法」スクリプトをユーザ定義関数に書き換えなさい。
なお、
・入力値(m, n (m ≧ n))を引数とすること
・算出された最大公約数を戻り値とすること

演習(3)
x-y平面の曲線(グラフ)を描く関数を作成しなさい。
※「曲線・グラフ総覧 (聖文社)」から好きな曲線を選択してください

演習(4)
RhinoPythonの組み込み関数 AddBox()(引数:8つの頂点)
http://www.rhino3d.com/5/ironpython/functions/addbox.htm)を
・関数名:「AddBoxByCenter」
・引き数:中心点(配列)、Boxの横幅、Boxの奥行き、Boxの高さ
とするBox描画関数をユーザ定義関数で作成しなさい。

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>