0Pricing
Python Academy · レッスン

関数の定義と呼び出し

def で関数を作成し、引数を渡して呼び出します。

「関数の定義と呼び出し」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

概要

関数はdefで定義する再利用可能なコードのまとまりです。重複を避け、プログラムのテストと保守を容易にします。

defキーワード

def greet(name): は関数を定義します。関数本体はインデントします。greet('Alice')で呼び出します。
def greet(name):
    print('Hello', name)
greet('Alice')

位置引数

引数は位置によって渡されます。def add(a, b): return a + b では、add(3,4)の結果は7です。
def add(a, b):
    return a + b
print(add(3, 4))

return文

returnは値を呼び出し元に返します。returnのない関数は、暗黙的にNoneを返します。
def square(x):
    return x * x
result = square(5)
print(result)

複数の戻り値

def min_max(lst): return min(lst), max(lst) はタプルを返します。lo, hi = min_max(lst) のようにアンパックできます。
def min_max(lst):
    return min(lst), max(lst)
lo, hi = min_max([3,1,4,1,5])
print(lo, hi)

ドキュメンテーション文字列

関数本体の最初の文字列は、その関数のドキュメンテーション文字列です:"""One-line summary."""。help()またはfunc.__doc__でアクセスできます。
def greet(name):
    """Return a greeting string."""
    return f"Hello {name}"
print(greet.__doc__)

可変個数の引数

def func(*args) は、追加の位置引数をタプルにまとめてargsに格納します。引数の個数がわからない場合に便利です。
def total(*nums):
    return sum(nums)
print(total(1,2,3,4))

関数はオブジェクト

関数は第一級オブジェクトです。変数に代入したり、引数として渡したり、リストに格納したりできます。
def double(x): return x * 2
fn = double
print(fn(5))

アンパックして呼び出す

args = [1,2]; f(*args) はリストを位置引数としてアンパックします。d = {'a':1}; f(**d) はdictをキーワード引数としてアンパックします。
def add(a, b): return a + b
args = [3, 4]
print(add(*args))

ラムダ関数

lambda x: x*2 は、名前のない1行の関数です。短いコールバックに使い、複雑な処理には名前付き関数を使用してください。
double = lambda x: x * 2
print(double(5))
print(list(map(lambda x: x**2, [1,2,3])))

ネストした関数

関数は別の関数の内部に定義できます。内側の関数は外側の関数のローカル変数にアクセスできます(クロージャ)。
def outer(x):
    def inner(y):
        return x + y
    return inner
add5 = outer(5)
print(add5(3))

理解度チェック

明示的なreturn文がない関数は何を返しますか?

まとめ

関数はdef name(args): bodyの形で定義します。returnで値を返します。複数の戻り値はタプルで返します。単純な1行処理にはラムダを使います。関数は第一級オブジェクトです。

次へ進む

よくできました。次のレッスンに進み、学習をさらに進めましょう。

よくある質問

「関数の定義と呼び出し」レッスンは無料ですか?

はい。「関数の定義と呼び出し」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「関数の定義と呼び出し」で何を学びますか?

def で関数を作成し、引数を渡して呼び出します。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「関数の定義と呼び出し」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 関数の定義と呼び出し
  2. デフォルト引数とキーワード引数
  3. args と kwargs
  4. 戻り値とスコープ
← Python Academyに戻る