LoginSignup
5
2

More than 3 years have passed since last update.

製薬企業研究者がPythonにおける関数についてまとめてみた

Last updated at Posted at 2019-12-07

はじめに

ここでは、Python初心者向けに「関数」について解説していきます。
Python3系の使用を想定しています。

関数の作成

関数を作成するときは、defを使います。
def 関数名(仮引数1、仮引数2、・・・):の次の行は半角スペース4つ分インデントして書き始めます。
返り値はreturnで書きます。
関数名は、組み込み関数などと同じにならないように注意が必要です。

function_1.py
def hello_python(): # 仮引数はなくても良い。
    return 'Hello, Python!'


def average(a, b): # 仮引数を2つ指定する。
    return (a + b) / len([a, b])


def greeting(word, n = 3): # 仮引数のデフォルト値を指定する(この例では第二引数)。
    return (word * n)

関数の呼び出し

関数を作成したら、実行したい箇所で関数名を呼び出します。
関数を作成しただけで実行されるわけではありません。

function_2.py
print(hello_python())

print(average(1, 3))

print(greeting('Hello!', n = 2))
print(greeting('Bye!')) # 第二引数を指定しないとデフォルト値が使われる。

変数のスコープ

関数内で定義した変数(ローカル変数)は、関数外では同じオブジェクトとして使うことはできません。
関数外で定義した変数(グローバル変数)は、関数内で使うことはできますが、関数内での変更を反映させたい場合は、グローバル変数であることを関数の定義時に明示する必要があります。

function_3.py
def add_one(n):
    a = 1
    return n + a


print(add_one(2))
print(a) # 変数aが定義されていないということで、エラーになる。
function_4.py
a = 1


def add_one(n):
    return n + a


print(add_one(2))
print(a) # エラーにならない。
function_5.py
a = 5


def add_one(n):
    a = 1 # ローカル変数
    return n + a


print(add_one(2))
print(a) # 関数内での変数aの値の変更は反映されない。
function_6.py
a = 5


def add_one(n):
    global a
    a = 1 #グローバル変数
    return n + a


print(add_one(2))
print(a) # 関数内での変数aの値の変更が反映される。

まとめ

ここでは、Pythonにおける「関数」の基本について解説しました。
特に、変数のスコープについては注意が必要です。

参考資料・リンク

プログラミング言語Pythonとは?AIや機械学習に使える?

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2